小白教程
所有教程
关于
Search
172.70.100.161
172.70.100.161
参数设置
贡献
退出
操作
编辑
移动
保护
信息
历史
删除
查看“Java9 multirelease jar”的源代码
本页内容
上一节:
Java9_improved_javadocs
下一节:
Java9_collection_factory_methods
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:多版本兼容 JAR 包}}[[Category:java9 new features|4]] = Java 9 多版本兼容 jar 包 = [[java9 new features|Java 9 新特性]] 多版本兼容 JAR 功能能让你创建仅在特定版本的 Java 环境中运行库程序时选择使用的 class 版本。 通过 --release 参数指定编译版本。 具体的变化就是 META-INF 目录下 MANIFEST.MF 文件新增了一个属性: <pre>Multi-Release: true</pre> 然后 META-INF 目录下还新增了一个 versions 目录,如果是要支持 java9,则在 versions 目录下有 9 的目录。 <pre>multirelease.jar ├── META-INF │ └── versions │ └── 9 │ └── multirelease │ └── Helper.class ├── multirelease ├── Helper.class └── Main.class</pre> 在以下实例中,我们使用多版本兼容 JAR 功能将 Tester.java 文件生成了两个版本的 jar 包, 一个是 jdk 7,另一个是 jdk 9,然后我们再不同环境下执行。 '''第一步''' 创建文件夹 c:/test/java7/com/xiaobai,并在该文件夹下创建 Test.java 文件,代码如下: <pre>package com.xiaobai; public class Tester { public static void main(String[] args) { System.out.println("Inside java 7"); } }</pre> '''第二步''' 创建文件夹 c:/test/java9/com/xiaobai,并在该文件夹下创建 Test.java 文件,代码如下: <pre>package com.xiaobai; public class Tester { public static void main(String[] args) { System.out.println("Inside java 9"); } }</pre> 编译源代码: <pre>C:\test > javac --release 9 java9/com/xiaobai/Tester.java C:\JAVA > javac --release 7 java7/com/xiaobai/Tester.java</pre> 创建多版本兼容 jar 包 <pre>C:\JAVA > jar -c -f test.jar -C java7 . --release 9 -C java9. Warning: entry META-INF/versions/9/com/xiaobai/Tester.java, multiple resources with same name</pre> 使用 JDK 7 执行: <pre>C:\JAVA > java -cp test.jar com.xiaobai.Tester Inside Java 7</pre> 使用 JDK 9 执行: <pre>C:\JAVA > java -cp test.jar com.xiaobai.Tester Inside Java 9</pre> [[java9 new features|Java 9 新特性]]
返回至“
Java9 multirelease jar
”。
上一节:
Java9_improved_javadocs
下一节:
Java9_collection_factory_methods