我正在尝试为我的 JAVA-9 应用程序/项目拼图创建跨平台/平台独立的可执行文件。
我认为 jlink 命令只会创建特定于平台的可执行文件/运行时。
我正在尝试为我的 JAVA-9 应用程序/项目拼图创建跨平台/平台独立的可执行文件。
我认为 jlink 命令只会创建特定于平台的可执行文件/运行时。
我知道这个问题很老,但由于在发布我自己的问题之前,它是我在谷歌搜索结果中排名靠前的结果之一,因此我决定也在这里记录我的发现。
在尝试使用jlink
Java 11 创建运行时映像时遇到了同样的问题。问题归结为错误地引用了目标 JDK 的jmods
文件夹,这反过来意味着在模块路径中找不到 JDK 的模块。jlink
然后默认在生成的运行时映像中包含宿主 JDK 的模块文件(以及相应的二进制文件、库等)。通过正确引用目标 JDK 的jmods
目录,生成的运行时映像包含特定于平台的可执行文件和随附文件。
这是通过为 Windows、Linux 和 MacOS 创建运行时映像在 Windows 机器上测试的。