Java 9 中的多版本 jar(mrjar) 是什么?\

javaobject oriented programmingprogramming更新于 2025/9/10 17:48:17

多版本 jar(也称为 mrjar)包含适用于多个 Jdk 版本 的库的相同版本。这意味着我们可以拥有一个适用于 Jdk 9 的库 mrjar 。mrjar  中的代码包含在 Jdk 9 中编译的 类文件。使用 Jdk 9 编译的类可以利用 Jdk 9 提供的 API。

mrjar 可以扩展 jar 的现有目录结构。它包含一个根目录,所有内容都位于该目录下,还有一个 META-INF 目录 ,用于存储有关 jar 的元数据 。通常,jar 包含一个包含属性的 META-INF/MANIFEST.MF 文件。

jar 中的条目如下:

- jar-root
- C1.class
- C2.class
- C3.class
- C4.class
- META-INF
- MANIFEST.MF

在上述模板中,jar 包含四个类文件和一个 MANIFEST.MF 文件。mrjar 扩展了 META-INF 目录,用于存储特定于 Jdk 版本的类。META-INF 目录包含 version 子目录,该子目录包含许多子目录,每个子目录的名称与 Jdk 主版本相同。例如,特定于 Jdk 9 的类有一个 META-INF/versions/9 目录。对于特定于 Jdk 10 的类,有 META-INF/versions/10。

- jar-root
 - C1.class
 - C2.class
 - C3.class
 - C4.class
- META-INF
 - MANIFEST.MF
 - versions
 - 9
  - C2.class
  - C5.class
 - 10
  - C1.class
  - C2.class
  - C6.class

相关文章


有用资源