java9 多版本兼容jar_Java9多版本兼容jar包

Java9多版本兼容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/bjpowernode,并在该文件夹下创建 Test.java 文件,代码如下:

package com.bjpowernode;

public class Tester {

public static void main(String[] args) {

System.out.println("Inside java 7");

}

}

第二步

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

package com.bjpowernode;

public class Tester {

public static void main(String[] args) {

System.out.println("Inside java 9");

}

}

编译源代码:

C:\test > javac --release 9 java9/com/bjpowernode/Tester.java

C:\JAVA > javac --release 7 java7/com/bjpowernode/Tester.java

创建多版本兼容 jar 包

C:\JAVA > jar -c -f test.jar -C java7 . --release 9 -C java9.

Warning: entry META-INF/versions/9/com/bjpowernode/Tester.java,

multiple resources with same name

使用 JDK 7 执行:

C:\JAVA > java -cp test.jar com.bjpowernode.Tester

Inside Java 7

使用 JDK 9 执行:

C:\JAVA > java -cp test.jar com.bjpowernode.Tester

Inside Java 9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值