Saltar al contenido

¿Se puede ejecutar el programa desarrollado con Java 8 en Java 7?

Hola, tenemos la respuesta a lo que necesitas, has scroll y la hallarás más abajo.

Solución:

En general, no.

La compatibilidad con versiones anteriores significa que puede ejecutar el programa Java 7 en el tiempo de ejecución de Java 8, y no al revés.

Hay varias razones para eso:

  • El código de bytes está versionado y JVM comprueba si es compatible con la versión que encuentra en los archivos .class.

  • Algunas construcciones de lenguaje no se pueden expresar en versiones anteriores de bytecode.

  • Hay nuevas clases y métodos en los JRE más nuevos que no funcionarán con los más antiguos.

Si realmente lo desea (consejo: no lo desea), puede obligar al compilador a tratar la fuente como una versión de Java y emitir un código de bytes para otra, usando algo como esto:

javac -source 1.8 -target 1.7 MyClass.java

(lo mismo para Maven), y compilar contra JDK7, pero en la práctica lo más probable es que no funcione. Te recomiendo que no lo hagas.

EDITAR: JDK 8 aparentemente no admite esta combinación exacta, por lo que no funcionará. Algunas otras combinaciones de versiones funcionan.

También hay programas para convertir programas Java más nuevos para que funcionen en JVM más antiguos. Para convertir Java 8 a 5-7, puede probar https://github.com/orfjackal/retrolambda Para obtener menos de 5, puede elegir uno de estos: http://en.wikipedia.org/wiki/Java_backporting_tools

Ninguno de estos trucos le brindará nuevas clases y métodos de Java 8, incluido el soporte de programación funcional para colecciones, flujos, API de tiempo, API sin firmar, etc. Así que diría que no vale la pena.

O, dado que desea ejecutar sus aplicaciones Java 8 JEE en un servidor de aplicaciones, simplemente ejecute todo su servidor en Java 8, puede funcionar.

Compatibilidad con versiones anteriores significa

Puede ejecutar la configuración inferior en la configuración superior no Vice-Versa .

Bueno, existe la opción del compilador -target, que le permite apuntar al formato de archivo de clase de las versiones anteriores de Java. Sin embargo, esto no soluciona ni detecta cosas como el uso de clases o métodos introducidos en las API de JDK después de la versión de destino.

Aquí tienes las comentarios y puntuaciones

Tienes la opción de secundar nuestro estudio fijando un comentario o dejando una valoración te estamos eternamente agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *