Java 9 - JAR multiversión
En Java 9, se introduce una nueva función en la que se ha mejorado un formato jar para tener diferentes versiones de la clase Java o los recursos se pueden mantener y utilizar según la plataforma. En JAR, un archivo MANIFEST.MF tiene una entrada Multi-Release:true en su sección principal. El directorio META-INF también contiene un subdirectorio de versiones cuyos subdirectorios (comenzando con 9 para Java 9) almacenan clases específicas de la versión y archivos de recursos.
En este ejemplo, usaremos un jar de versiones múltiples para tener dos versiones del archivo Tester.java, una para jdk 7 y otra para jdk 9 y ejecutarlo en diferentes versiones de jdk.
Pasos
Paso 1 − Cree una carpeta c:/test/java7/com/tutorialspoint. Cree Test.java con el siguiente contenido −
Probador.java
Demostración en vivopackage com.tutorialspoint; public class Tester { public static void main(String[] args) { System.out.println("Inside java 7"); } }
Paso 2 − Cree una carpeta c:/test/java9/com/tutorialspoint. Cree Test.java con el siguiente contenido −
Probador.java
Demostración en vivopackage com.tutorialspoint; public class Tester { public static void main(String[] args) { System.out.println("Inside java 9"); } }
Compile los códigos fuente.
C:\test > javac --release 9 java9/com/tutorialspoint/Tester.java C:\JAVA > javac --release 7 java7/com/tutorialspoint/Tester.java
Crear el tarro de liberación múltiple
C:\JAVA > jar -c -f test.jar -C java7 . --release 9 -C java9. Warning: entry META-INF/versions/9/com/tutorialspoint/Tester.java, multiple resources with same name
Ejecutar con JDK 7
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 7
Ejecutar con JDK 9
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 9
Java