Java 9 - Multirelease JAR
In Java 9 wird eine neue Funktion eingeführt, bei der ein JAR-Format erweitert wurde, damit verschiedene Versionen der Java-Klasse oder -Ressourcen gemäß der Plattform verwaltet und verwendet werden können. In JAR hat eine Datei MANIFEST.MF im Hauptabschnitt den Eintrag Multi-Release: true. Das META-INF-Verzeichnis enthält auch ein Unterverzeichnis für Versionen, in dessen Unterverzeichnissen (beginnend mit 9 für Java 9) versionenspezifische Klassen und Ressourcendateien gespeichert sind.
In diesem Beispiel verwenden wir ein Multi-Release-JAR, um zwei Versionen der Datei Tester.java zu haben, eine für JDK 7 und eine für JDK 9, und führen Sie sie auf verschiedenen JDK-Versionen aus.
Schritte
Step 1- Erstellen Sie einen Ordner c: / test / java7 / com / tutorialspoint. Erstellen Sie Test.java mit folgendem Inhalt:
Tester.java
package com.tutorialspoint;
public class Tester {
public static void main(String[] args) {
System.out.println("Inside java 7");
}
}
Step 2- Erstellen Sie einen Ordner c: / test / java9 / com / tutorialspoint. Erstellen Sie Test.java mit folgendem Inhalt:
Tester.java
package 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-Glas
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
Führen Sie mit JDK 7 aus
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester
Inside Java 7
Führen Sie mit JDK 9 aus
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester
Inside Java 9