Учебники

Java 9 — мультирелизный JAR

В java 9 появилась новая функция, в которой был улучшен формат jar, чтобы иметь возможность поддерживать и использовать разные версии java-класса или ресурсы в соответствии с платформой. В JAR файл MANIFEST.MF имеет запись Multi-Release: true в своем основном разделе. Каталог META-INF также содержит подкаталог версий, подкаталоги которого (начиная с 9 для Java 9) содержат классы, зависящие от версии, и файлы ресурсов.

В этом примере мы будем использовать jar с несколькими выпусками, чтобы иметь две версии файла Tester.java, одну для jdk 7 и одну для jdk 9, и запускать его в разных версиях jdk.

меры

Шаг 1 — Создайте папку c: / test / java7 / com / tutorialspoint. Создать Test.java со следующим содержанием —

Tester.java

Live Demo

package com.tutorialspoint;

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

Шаг 2 — Создайте папку c: / test / java9 / com / tutorialspoint. Создать Test.java со следующим содержанием —

Tester.java

Live Demo

package com.tutorialspoint;

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

Скомпилируйте исходные коды.

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

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

Создать мульти-релиз банку

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

Запустить с JDK 7

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

Беги с JDK 9