Java 9 - Multirelease-JAR
In Java 9 wird eine neue Funktion eingeführt, bei der ein JAR-Format verbessert wurde, damit verschiedene Versionen von Java-Klassen oder -Ressourcen je nach Plattform verwaltet und verwendet werden können. In JAR hat eine Datei MANIFEST.MF einen Eintrag Multi-Release:true in ihrem Hauptabschnitt. Das META-INF-Verzeichnis enthält auch ein Versions-Unterverzeichnis, dessen Unterverzeichnisse (beginnend mit 9 für Java 9) versionsspezifische Klassen und Ressourcendateien speichern.
In diesem Beispiel verwenden wir ein Multi-Release-Jar, um zwei Versionen der Tester.java-Datei zu haben, eine für jdk 7 und eine für jdk 9, und führen sie auf verschiedenen jdk-Versionen aus.
Schritte
Schritt 1 − Erstellen Sie einen Ordner c:/test/java7/com/tutorialspoint. Erstellen Sie Test.java mit folgendem Inhalt −
Tester.java
Live-Demopackage com.tutorialspoint; public class Tester { public static void main(String[] args) { System.out.println("Inside java 7"); } }
Schritt 2 − Erstellen Sie einen Ordner c:/test/java9/com/tutorialspoint. Erstellen Sie Test.java mit folgendem Inhalt −
Tester.java
Live-Demopackage com.tutorialspoint; public class Tester { public static void main(String[] args) { System.out.println("Inside java 9"); } }
Kompilieren Sie die Quellcodes.
C:\test > javac --release 9 java9/com/tutorialspoint/Tester.java C:\JAVA > javac --release 7 java7/com/tutorialspoint/Tester.java
Erstellen Sie das Multi-Release-JAR
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
Ausführung mit JDK 7
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 7
Ausführung mit JDK 9
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 9
Java