亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java 9 多版本 JAR:单一归档适配多平台类版本

多版本 JAR 概念

Java 9 增强 JAR 格式:META-INF/MANIFEST.MF 主属性添加 Multi-Release: true,META-INF/versions/ 目录下按主版本号存放版本专用类/资源(如 versions/9/、versions/10/)。

运行时 JVM 自动选择匹配最高兼容版本的类:Java 9 运行时优先加载 versions/9/ 下的类,Java 8 则回退到根目录类。

实战步骤

1. 准备 Java 7 版本类

# c:/test/java7/com/tutorialspoint/Tester.java
package com.tutorialspoint;
public class Tester {
    public static void main(String[] args) {
        System.out.println("Inside java 7");
    }
}

2. 准备 Java 9 版本类

# c:/test/java9/com/tutorialspoint/Tester.java
package com.tutorialspoint;
public class Tester {
    public static void main(String[] args) {
        System.out.println("Inside java 9");
    }
}

3. 分别编译

javac --release 9 java9/com/tutorialspoint/Tester.java
javac --release 7 java7/com/tutorialspoint/Tester.java

4. 创建多版本 JAR

jar -c -f test.jar -C java7 . --release 9 -C java9 .

5. 验证运行

# JDK 7 运行
java -cp test.jar com.tutorialspoint.Tester
# Output: Inside java 7

# JDK 9 运行
java -cp test.jar com.tutorialspoint.Tester
# Output: Inside java 9

结构示意

test.jar
├── META-INF/
│   ├── MANIFEST.MF          # Multi-Release: true
│   └── versions/
│       └── 9/
│           └── com/tutorialspoint/Tester.class  # Java 9 专用版本
└── com/tutorialspoint/Tester.class              # 基准版本 (Java 7 兼容)

适用场景与注意事项

java

  1. 精通 Java 运算符:类型、语法与实战示例
  2. Java 注释:类型、用法与最佳实践
  3. 精通 Java if…else:控制流全解析
  4. 精通 Java 增强 for 循环:语法、示例与最佳实践
  5. 精通 Java 字符串:创建、方法与最佳实践
  6. 精通 Java 接口:概念、实现与最佳实践
  7. 精通 Java 匿名内部类:定义、语法与实战示例
  8. 精通 Java Try-With-Resources:自动资源管理详解
  9. Java 注解详解:类型、放置位置与实战示例
  10. Java 断言实战指南:尽早发现 Bug 与保障代码可靠性
  11. 深入理解 Java Vector:用法、特性及与 ArrayList 的对比
  12. Java 9 多版本 JAR:单一归档适配多平台类版本