多版本 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 类。