课程表

Java 基础教程

Java 面向对象

Java 高级教程

工具箱
速查手册

Java 9 多版本兼容jar包

当前位置:免费教程 » Java相关 » Java

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

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

具体的变化就是 META-INF 目录下 MANIFEST.MF 文件新增了一个属性:

  1. Multi-Release: true

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

  1. multirelease.jar
  2. ├── META-INF
  3.    └── versions
  4.        └── 9
  5.            └── multirelease
  6.                └── Helper.class
  7. ├── multirelease
  8.     ├── Helper.class
  9.     └── Main.class

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

第一步

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

  1. package com.w3xue;
  2.  
  3. public class Tester {
  4.    public static void main(String[] args) {
  5.       System.out.println("Inside java 7");
  6.    }
  7. }

第二步

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

  1. package com.w3xue;
  2.  
  3. public class Tester {
  4.    public static void main(String[] args) {
  5.       System.out.println("Inside java 9");
  6.    }
  7. }

编译源代码:

  1. C:\test > javac --release 9 java9/com/w3xue/Tester.java
  2.  
  3. C:\JAVA > javac --release 7 java7/com/w3xue/Tester.java

创建多版本兼容 jar 包

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

使用 JDK 7 执行:

  1. C:\JAVA > java -cp test.jar com.tutorialspoint.Tester
  2. Inside Java 7

使用 JDK 9 执行:

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


转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号