Java 9创建多版本的jar


在java9中,引入了一个新特性,其中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 / codingdict。 用以下内容创建Test.java -

Tester.java

package com.codingdict;

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

第2步 - 创建一个文件夹c:/ test / java9 / com / codingdict。 用以下内容创建Test.java -

Tester.java

package com.codingdict;

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

编译源代码。

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

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

创建多版本的jar

C:\JAVA > jar -c -f test.jar -C java7 . --release 9 -C java9.
Warning: entry META-INF/versions/9/com/codingdict/Tester.java,
   multiple resources with same name

使用JDK 7运行

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

使用JDK 9运行

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