多版本 Jar 文件内容的示例
通过在 MANIFEST.MF 文件中设置 Multi-Release: true
,Jar 文件成为多版本 Jar,Java 运行时(只要它支持 MRJAR 格式)将根据当前主要版本选择适当的类版本。
这种 Jar 的结构如下:
jar root
- A.class
- B.class
- C.class
- D.class
- META-INF
- versions
- 9
- A.class
- B.class
- 10
- A.class
- 在 JDK <9 上,只有根条目中的类对 Java 运行时可见。
- 在 JDK 9 上,将从目录
root/META-INF/versions/9
加载类 A 和 B,而从基本条目加载 C 和 D. - 在 JDK 10 上,将从目录
root/META-INF/versions/10
加载 A 类。