Java 9 - JAR multiversion
Dans Java 9, une nouvelle fonctionnalité est introduite où un format jar a été amélioré pour que différentes versions de la classe Java ou des ressources puissent être maintenues et utilisées selon la plate-forme. Dans JAR, un fichier MANIFEST.MF a une entrée Multi-Release:true dans sa section principale. Le répertoire META-INF contient également un sous-répertoire versions dont les sous-répertoires (commençant par 9 pour Java 9 ) stockent des classes et des fichiers de ressources spécifiques à la version.
Dans cet exemple, nous allons utiliser un jar multi-release pour avoir deux versions du fichier Tester.java, une pour jdk 7 et une pour jdk 9 et l'exécuter sur différentes versions de jdk.
Étapes
Étape 1 − Créez un dossier c:/test/java7/com/tutorialspoint. Créer Test.java avec le contenu suivant −
Testeur.java
Démo en directpackage com.tutorialspoint; public class Tester { public static void main(String[] args) { System.out.println("Inside java 7"); } }
Étape 2 − Créez un dossier c:/test/java9/com/tutorialspoint. Créer Test.java avec le contenu suivant −
Testeur.java
Démo en directpackage com.tutorialspoint; public class Tester { public static void main(String[] args) { System.out.println("Inside java 9"); } }
Compilez les codes sources.
C:\test > javac --release 9 java9/com/tutorialspoint/Tester.java C:\JAVA > javac --release 7 java7/com/tutorialspoint/Tester.java
Créer le pot multi-libération
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
Exécuter avec JDK 7
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 7
Exécuter avec JDK 9
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 9
Java