Estoy interesado en usar algunas de las características de NIO2 en el SDK de Java 7 si está disponible (específicamente, file system watchers), sin embargo no quiero compilar mis clases para Java 7 y excluir Java 6 tiempos de ejecución. Sobre todo porque quiero mantener la compatibilidad con Mac OS X, y también porque no quiero forzar a mis usuarios a actualizar.Uso de las características de Java 7 SDK en Java 6
¿Esto es posible? ¿Cuál es la mejor manera de hacerlo? Cualquier enlace o ejemplos?
Aquí hay algunas maneras en que me puedo imaginar: compilar un archivo de clase con un compilador diferente y cargarlo dinámicamente en función de la versión de Java? ¿O tal vez usando la reflexión? ¿O tal vez solo hay una configuración de compilador para Java 7 para generar clases compatibles con Java 6?
Estoy buscando una solución que no se convierta en un lío feo :), así que idealmente puedo escribir dos implementaciones de una interfaz, una con las nuevas funciones y otra sin, y luego seleccionar una de forma dinámica en lugar de tener para hacer llamadas reflexivas por todo el lugar.
Como supongo que estas características comenzaron a existir en SE7, ¿cómo crees que podrás compilar con un modo de compatibilidad SE6 y conservarlas? – KevinDTimm
Lo que quiero hacer es usarlos solo cuando el programa se ejecuta en un entorno de ejecución Java 7, y recurrir a otros comportamientos si no es así. Tenga en cuenta que estoy hablando de las características del SDK de Java 7, no de las características del lenguaje. –
Lo lamentamos, serán necesarias dos bases de código (o, al menos, tener una base de manejo de archivos separada para cada entorno y crear salidas separadas para cada versión ya que el código compilado en la Versión X generalmente no funciona en ninguna versión de menor número) – KevinDTimm