gpt4 book ai didi

带有 jlink 压缩标签的 Java9 打包器

转载 作者:搜寻专家 更新时间:2023-10-31 19:36:47 24 4
gpt4 key购买 nike

当我们创建 jlink 运行时图像时,我们可以使用诸如“--strip-debug”、“--compress”、“2”、“--no-header-files”、“--no-man-”等标签pages' ,创建一个大约 45mb 的分发文件夹。

如果我们想使用javapackager,例如创建一个.DMG文件,我们如何做类似的压缩?因为这些标签不适用于 javapackager。没有它们,最终的包大约是 100mb,失去了很多 java9 模块化的优势,所以我的问题是是否可以将 javapackager 与 jlink 创建的 JRE 运行时镜像一起使用。

谢谢

最佳答案

回答我自己的问题,我们可以使用两者的组合:

以 MacOSX 为例:

1) 使用 jlink 生成运行时 dist,如果使用压缩标签,这将创建一个大约 50mb 的 lib 文件夹。

2) 使用 javapackager 生成 MacOSX.app,这个 .app 将带有一个大约 98mb 的运行时库文件夹。

3) 简单替换,右击MacOSX.app->“show package contents”,然后到Plugins/Java.runtime/Contents/Home/,用jLink生成的替换lib文件夹。

这样你就有了一个独立的 Java 应用程序,大约 50mb 而不是 100mb,这要归功于漂亮的 Java9 模块。

仅使用 javapackager 完成所有这些工作会很酷,如果可能我找不到方法,我建议使用类似 gradle 的东西通过 1 个命令执行所有这些过程。

关于带有 jlink 压缩标签的 Java9 打包器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47287429/

24 4 0