Java 9有三种方法可以将编译后的代码打包到文件中:
JIMAGE针对速度和空间进行了优化,并在运行时由JVM使用,因此引入JIMAGE是有道理的。 JIMAGE文件不应发布到maven repos或在编译或链接时使用。
文档声称JMOD可以存储本机代码以及JAR文件无法存储的其他内容,开发人员可以制作和分发自己的JMOD文件。 JDK附带jmods/
目录,其中包含JDK的所有模块供用户依赖。
问题:
答案 0 :(得分:10)
以下是JEP 261: Module System的一些引用,其中包含有关JMOD文件的部分。
<强>为什么吗
来自JEP 261:
新的JMOD格式超越了JAR文件以包含本机代码, 配置文件以及其他不适合的数据 自然,如果有的话,进入JAR文件。
和
JMOD文件的最终格式是一个开放的问题,但现在它是 基于ZIP文件。
开发者应该发布JMOD文件吗?
请注意,JMOD文件似乎是一种在编译时和链接时合并本机代码(以及其他内容)的方法。来自JEP 261:
JMOD文件可以在编译时和链接时使用,但不能在运行时使用 时间。
(说实话,我不确定在JDK 9之前如何发布本机代码。)对于绝大多数开发人员(没有本机库或其他角落案例),我们只会发布模块化jar。