一个很好的问题可能是“为什么不启用 JAR 来添加链接时行为?”.这里有一个潜在的怀疑是,这不能为现有的 JAR 和工具提供足够的向后兼容性支持。在 JAR 归档文件中没有保留文件名的规范。如果现有库将任何资源存储在用于链接时的目录下,则 jlink无法准确地猜测是在链接时使用还是在运行时需要使用。带有保留目录名的新文件格式规范可以解决这个冲突问题——比如新的 JMOD 格式。使用 JMOD,对于为链接时和运行时指定哪些资源没有任何歧义。此外,还可以扩展 JMOD 格式,以便在以后的 JDK 版本中添加新功能,而不存在向后兼容性问题。
JMOD 文件格式类似于 JAR,因为它基于 ZIP 文件格式。JMOD 文件具有以下保留的目录名,具有以下行为(这不一定是详尽无遗的列表!):