如何使用捆绑的 JRE 创建 mac 通用二进制文件?

tra*_*ery 5 java macos universal-binary

我正在为 Mac 计算机创建一个 JAVA 桌面应用程序,使用 jpackage 将所需的 JRE 捆绑到该应用程序中,最后将 .app 发送给客户。

对于新的 m1 Apple Arm 硅计算机,我不想使用正确的 JRE(Intel 和 Arm)为每个处理器架构创建不同的应用程序,而是创建一个通用二进制应用程序,在 Intel 计算机上启动 Intel JRE,在 Arm 上启动 Arm JRE电脑。我知道这在某种程度上是可能的。

我尝试创建两个 .apps 并从 mac 命令行使用 lipo 工具,但这实际上不起作用。

有什么建议如何继续吗?

小智 1

我采用了 Zulu Intel 和 Arm JRE(不是 JDK)构建并对二进制文件进行了 lipo'ed。您可以使用生成的 JRE 包运行该脚本(您只需要在 Intel 和 ARM 计算机上运行 jpackage 即可为每种架构获取适当的运行时)。

Github 仓库:

https://github.com/ChristopherBruno78/universal_jre

在 Intel 和 Arm macOS 13 Ventura 上进行了测试。