开发手册 欢迎您!
软件开发者资料库

Java 9 - Multirelease JAR

Java 9 Multirelease JAR - 从简单和简单的步骤学习Java 9,从基本到高级概念,包括概述,环境设置,模块系统,REPL(JShell),改进的JavaDocs,Multirelease JAR,Collection Factory方法,专用接口方法,Process API,Stream API,Try with Resources,可选类,CompletableFuture API改进,增强的@Deprecated Annotation,内部类Diamond操作符,Multiresolution Image API,其他功能。

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

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

步骤

第1步 : 创建一个文件夹c:/test/java7/com/it1352.使用以下内容创建Test.java :

Tester.java

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


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

Tester.java

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


编译源代码.

C:\test>javac --release 9 java9/com/it1352/Tester.java C:\JAVA>javac --release 7 java7/com/it1352/Tester.java


创建多版本jar

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


使用JDK 7运行

C:\JAVA>java -cp test.jar com.it1352.TesterInside Java 7


使用JDK 9运行

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