Multirelease JAR(Multirelease JAR)
优质
小牛编辑
135浏览
2023-12-01
在java 9中,引入了一个新特性,其中增强了jar格式以具有不同版本的java类,或者可以根据平台维护和使用资源。 在JAR中,文件MANIFEST.MF文件的主要部分中有一个条目Multi-Release:true。 META-INF目录还包含一个versions子目录,其子目录(从9开始,用于Java 9)存储特定于版本的类和资源文件。
在这个例子中,我们将使用多版本jar有两个版本的Tester.java文件,一个用于jdk 7,另一个用于jdk 9,并在不同的jdk版本上运行。
Steps
Step 1 - 创建文件夹c:/ test/java7/com/xnip。 使用以下内容创建Test.java -
Tester.java
package cn.xnip;
public class Tester {
public static void main(String[] args) {
System.out.println("Inside java 7");
}
}
Step 2 - 创建文件夹c:/ test/java9/com/xnip。 使用以下内容创建Test.java -
Tester.java
package cn.xnip;
public class Tester {
public static void main(String[] args) {
System.out.println("Inside java 9");
}
}
编译源代码。
C:\test > javac --release 9 java9/com/xnip/Tester.java
C:\JAVA > javac --release 7 java7/com/xnip/Tester.java
创建多版本jar
C:\JAVA > jar -c -f test.jar -C java7 . --release 9 -C java9.
Warning: entry META-INF/versions/9/com/xnip/Tester.java,
multiple resources with same name
使用JDK 7运行
C:\JAVA > java -cp test.jar cn.xnip.Tester
Inside Java 7
使用JDK 9运行
C:\JAVA > java -cp test.jar cn.xnip.Tester
Inside Java 9