📜  Java 9-多重发行版JAR

📅  最后修改于: 2020-11-15 03:14:17             🧑  作者: Mango


在Java 9中,引入了一项新功能,其中增强了jar格式以具有不同版本的Java类,或者可以根据平台维护和使用资源。在JAR中,文件MANIFEST.MF文件的主要部分具有条目Multi-Release:true。 META-INF目录还包含一个versions子目录,其子目录(对于Java 9从9开始)存储特定于版本的类和资源文件。

在此示例中,我们将使用多版本jar来拥有两个版本的Tester.java文件,一个版本用于jdk 7,一个版本用于jdk 9,并在不同的jdk版本上运行它。

脚步

步骤1-创建一个文件夹c:/ test / java7 / com / tutorialspoint。创建具有以下内容的Test.java-

测试器

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-

测试器

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

创建多版本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

与JDK 7一起运行

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

使用JDK 9运行

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