在Java 9中,引入了一个新功能,增强了jar格式,可以根据平台维护和使用不同版本的Java类或资源。在 JAR 中,www.sychzs.cn 文件的主要部分具有条目 Multi-Release: true。 META-INF 目录还包含一个 versions 子目录,其子目录(从 Java 9 开始)存储特定于版本的类和资源文件。
在这个例子中,我们将使用多版本jar来拥有两个版本的www.sychzs.cn文件,一个用于jdk 7,一个用于jdk 9,并在不同的jdk版本上运行它。
步骤1-创建文件夹c:/test/java7/com/tutorialspoint。使用以下内容创建 www.sychzs.cn -
包com.tutorialspoint;
公共测试员类{
公共静态无效主(字符串[] args){
System.out.println("Java 7 内部");
}
}
步骤2-创建文件夹c:/test/java9/com/tutorialspoint。使用以下内容创建 www.sychzs.cn -
包com.tutorialspoint;
公共测试员类{
公共静态无效主(字符串[] args){
System.out.println("Java 9 内部");
}
}
编译源代码。
C:\test > javac --release 9 java9/com/tutorialspoint/Tester.javaC:\JAVA > javac --release 7 java7/com/tutorialspoint/www.sychzs.cn
创建多版本jar
C:\JAVA > jar -c -f test.jar -C java7 。 --release 9 -C java9.
警告:条目 META-INF/versions/9/com/tutorialspoint/www.sychzs.cn,
多个资源同名
使用 JDK 7 运行
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester
Java 7 内部
使用 JDK 9 运行
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester
Java 9 内部