繁体   English   中英

如何获得准备好嵌入的 Mac JRE(在 linux 上)?

[英]How get a Mac JRE (on linux) that is ready for embedding?

多年来,我分发了一个依赖于 javafx 的软件,解决方案是在分发的软件中包含一个 JRE,并使用设置 JAVA_HOME 的脚本运行 my.jar 文件。 它工作得很好。

Mac 版本一直是一个挑战:我必须从 java 下载 .dmg,解压缩它,并针对(历史上)不同的目录结构调整脚本(这可能是 .dmg 打包的产物,我没有知道)。 但它总是有效的。 (我在 Linux 上执行此操作。)

我最近将包含的 JRE 更新到最新版本 (1.8.0_291),它不再适用于 Mac,即使在我更正了新的目录结构之后也是如此。 用户报告脚本错误:

Error: could not find libjava.dylib
Error: Could not find Java SE Runtime Environment.

...确实,没有 libjava.dylib。 在我使用的以前的 Mac JRE 版本(1.8.0_92)中,这个文件位于:

lib/jre/Contents/Home/lib/libjava.dylib

...但它在最新的任何地方都不存在。 我还注意到最新的 JRE 总计 107 MB,而旧的为 164 MB,因此对于这些最近的 JRE 下载,我似乎有些不理解。 例如,也许 mac 版本需要安装程序才能完成?

在哪里可以下载可分发的 Mac JRE?

如果做不到这一点,制作包含的 Mac JRE 的正确方法是什么?

对于多平台预构建的 JRE,AdoptOpenJDK 似乎是go的一个很好的通用方法,但它们不包括 JavaFX

我尝试将 OpenJDK 与来自 openjfx.io 的 OpenJFX库结合使用,尽管我的应用程序表面上工作,但有很多异常表明两者之间的兼容性很差。 (我无法精确匹配 JDK 11 的版本。两者的最新版本(JDK 16)可能会更好地互操作。)

从 BellSoft 找到了 Liberica JDK 他们的“完整 JRE”包括 javafx 并且正在工作。 我确实在启动时遇到了一个与摆动相关的异常,但这似乎与功能无关。

貌似也有Azul 平台,但我没有调查过。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM