开发学院

您的位置:首页>教程>正文

教程正文

Java 9 Multirelease JAR

Java 9 Multirelease JAR

  在Java 9中,引入了一个新功能,其中jar格式已经被增强,可以根据平台维护和使用不同版本的Java类或资源。在JAR中,MANIFEST.MF文件在其主要部分有一个条目 Multi-Release: true。META-INF目录还包含一个versions子目录,其子目录( 从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

  创建multi-release 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