Fichiers JAR multi-release Java 9

Java 9 新特性Nouveautés de Java 9

La fonctionnalité JAR multi-release vous permet de créer des versions de classes qui ne sont sélectionnées que lors de l'exécution de programmes de bibliothèque dans une version spécifique de l'environnement Java.

via--releasele paramètre pour spécifier la version de compilation.

Le changement spécifique est qu'un nouvel attribut a été ajouté au fichier MANIFEST.MF dans le répertoire META-INF :

Multi-Release: true

De plus, un répertoire versions est ajouté sous le répertoire META-INF. Si Java 9 doit être pris en charge, il y a un répertoire 9 sous le répertoire versions.

multirelease.jar
├── META-INF
│   └── versions
│       └── 9
│           └── multirelease
│               └── Helper.class
├── multirelease
    ├── Helper.class
    └── Main.class

Dans l'exemple suivant, nous utilisons la fonctionnalité JAR multi-release pour générer deux versions du paquet jar à partir du fichier Tester.java, une pour JDK 7 et l'autre pour JDK 9, puis nous les exécutons dans différents environnements.

Étape 1

Créez le dossier c:/test/java7/com/example, puis créez le fichier Test.java dans ce dossier. Le code est le suivant :

Exemple

package com.example;

public class Tester {
   public static void main(String[] args) {
      System.out.println("Inside java 7");
   }
}

Étape 2

Créez le dossier c:/test/java9/com/example, puis créez le fichier Test.java dans ce dossier. Le code est le suivant :

Exemple

package com.example;

public class Tester {
   public static void main(String[] args) {
      System.out.println("Inside java 9");
   }
}

Compiler le code source :

C:\test > javac --release 9 java9/com/example/Tester.java

C:\JAVA > javac --release 7 java7/com/example/Tester.java

Créer un fichier JAR multi-release

C:\JAVA > jar -c -f test.jar -C java7 . --release 9 -C java9 .
Warning: entry META-INF/versions/9/com/example/Tester.java, 
   multiple resources with same name

Exécuter avec JDK 7 :

C:\JAVA > java -cp test.jar com.example.Tester
Inside Java 7

Exécuter avec JDK 9 :

C:\JAVA > java -cp test.jar com.example.Tester
Inside Java 9

Java 9 新特性Nouveautés de Java 9

Autres extensions