Java 9 Multi-Release-JAR-Dateien

Java 9 新特性Neue Funktionen in Java 9

Das Multi-Release-JAR-Feature ermöglicht es Ihnen, Klassenversionen zu erstellen, die nur ausgewählt werden, wenn Bibliotheksprogramme in einer bestimmten Version der Java-Umgebung ausgeführt werden.

über den Parameter--release, um die Kompilierungsversion anzugeben.

Die konkrete Änderung ist, dass der MANIFEST.MF-Datei im META-INF-Verzeichnis ein neues Attribut hinzugefügt wurde:

Multi-Release: true

Darüber hinaus wird unter dem META-INF-Verzeichnis ein versions-Verzeichnis hinzugefügt. Wenn Java 9 unterstützt werden soll, gibt es ein 9-Verzeichnis unter dem versions-Verzeichnis.

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

Im folgenden Beispiel verwenden wir das Multi-Release-JAR-Feature, um zwei Versionen des JAR-Pakets aus der Datei Tester.java zu generieren, eine für JDK 7 und die andere für JDK 9, und führen sie dann in unterschiedlichen Umgebungen aus.

Schritt 1

Erstellen Sie den Ordner c:/test/java7/com/example und erstellen Sie die Datei Test.java in diesem Ordner. Der Code lautet wie folgt:

Beispiel

package com.example;

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

Schritt 2

Erstellen Sie den Ordner c:/test/java9/com/example und erstellen Sie die Datei Test.java in diesem Ordner. Der Code lautet wie folgt:

Beispiel

package com.example;

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

Quellcode kompilieren:

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

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

Multi-Release-JAR-Datei erstellen

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

Ausführen mit JDK 7:

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

Ausführen mit JDK 9:

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

Java 9 新特性Neue Funktionen in Java 9

Weitere Erweiterungen