- Java 9 教程
- Java 9 - 主页
- Java 9 - 概述
- Java 9 - 环境设置
- Java 9 - 模块系统
- Java 9 - REPL(JShell)
- Java 9 - 改进的 JavaDocs
- Java 9 - 多版本 JAR
- Java 9 - 集合工厂方法
- Java 9 - 私有接口方法
- Java 9 - 流程 API 改进
- Java 9 - 流 API 改进
- 尝试资源改进
- 增强的@Deprecated注释
- 内部类钻石运算符
- 可选的类改进
- Java 9 - 多分辨率图像 API
- CompletableFuture API 改进
- Java 9 - 其他功能
- java9 有用的资源
- Java 9 - 问题与解答
- Java 9 - 快速指南
- Java 9 - 有用的资源
- Java 9 - 讨论
Java 9 - 多版本 JAR
在 java 9 中,引入了一项新功能,其中增强了 jar 格式,可以根据平台维护和使用不同版本的 java 类或资源。在 JAR 中,文件 MANIFEST.MF 文件在其主要部分中有一个条目 Multi-Release: true。META-INF 目录还包含一个 versions 子目录,其子目录(对于 Java 9 以 9 开头)存储特定于版本的类和资源文件。
在此示例中,我们将使用多版本 jar 来拥有两个版本的 Tester.java 文件,一种用于 jdk 7,一种用于 jdk 9,并在不同的 jdk 版本上运行它。
脚步
步骤 1 - 创建文件夹 c:/test/java7/com/tutorialspoint。使用以下内容创建 Test.java -
测试器.java
package com.tutorialspoint; public class Tester { public static void main(String[] args) { System.out.println("Inside java 7"); } }
步骤 2 - 创建文件夹 c:/test/java9/com/tutorialspoint。使用以下内容创建 Test.java -
测试器.java
package com.tutorialspoint; public class Tester { public static void main(String[] args) { System.out.println("Inside java 9"); } }
编译源代码。
C:\test > javac --release 9 java9/com/tutorialspoint/Tester.java C:\JAVA > javac --release 7 java7/com/tutorialspoint/Tester.java
创建多版本 jar
C:\JAVA > jar -c -f test.jar -C java7 . --release 9 -C java9. Warning: entry META-INF/versions/9/com/tutorialspoint/Tester.java, multiple resources with same name
使用 JDK 7 运行
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 7
使用 JDK 9 运行
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 9