当前位置:首页 > JAVA教程 > JAVA基础

Java 9 多版本兼容 jar 包

java 9 多版本兼容 jar 包

多版本兼容 jar 功能能让你创建仅在特定版本的 java 环境中运行库程序时选择使用的 class 版本。

通过 --release 参数指定编译版本。

具体的变化就是 meta-inf 目录下 manifest.mf 文件新增了一个属性:

multi-release: true

然后 meta-inf 目录下还新增了一个 versions 目录,如果是要支持 java9,则在 versions 目录下有 9 的目录。

multirelease.jar
├── meta-inf
│   └── versions
│       └── 9
│           └── multirelease
│               └── helper.class
├── multirelease
    ├── helper.class
    └── main.class

在以下实例中,我们使用多版本兼容 jar 功能将 tester.java 文件生成了两个版本的 jar 包, 一个是 jdk 7,另一个是 jdk 9,然后我们再不同环境下执行。

第一步

创建文件夹 c:/test/java7/com/runoob,并在该文件夹下创建 test.java 文件,代码如下:

实例

package com.runoob;

public class tester {
   public static void main(string[] args) {
      system.out.println("inside java 7");
   }
}

第二步

创建文件夹 c:/test/java9/com/runoob,并在该文件夹下创建 test.java 文件,代码如下:

实例

package com.runoob;

public class tester {
   public static void main(string[] args) {
      system.out.println("inside java 9");
   }
}

编译源代码:

c:test > javac --release 9 java9/com/runoob/tester.java

c:java > javac --release 7 java7/com/runoob/tester.java

创建多版本兼容 jar 包

c:java > jar -c -f test.jar -c java7 . --release 9 -c java9 .
warning: entry meta-inf/versions/9/com/runoob/tester.java, 
   multiple resources with same name

使用 jdk 7 执行:

c:java > java -cp test.jar com.runoob.tester
inside java 7

使用 jdk 9 执行:

c:java > java -cp test.jar com.runoob.tester
inside java 9

【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!