将 jdk 8 与 Mac OS X 安装程序捆绑在一起

bundling jdk 8 with Mac OS X installer

我使用 pkgbuild 和产品构建为 mac 创建了一个 .pkg 安装程序。有没有办法将 java jdk 8 与包一起捆绑。假设更新版本的 java 已经安装在 Mac 上,我的应用程序仅与 jdk 8 兼容。 有没有一种方法可以在不影响已安装的 jdk 的较新版本的情况下,只为该应用程序在本地放置捆绑的 jdk?

您可以将 OpenJDK 8 解压缩到 non-system 文件夹(或您的应用程序的文件夹)中,并在不影响其他已安装的 JDK 的情况下使用它。无需安装或修改全局环境变量。所以技术上是没有问题的。

注意:Oracle 的(未开放)JDK 在安装和分发方面有不同的规则。

如果启动您的应用程序产生错误:

Error: could not find libjava.dylib Failed to GetJREPath()

这意味着它直接使用 JDK 本机库。 (有关详细信息,请参阅 bugs.openjdk.java.net/browse/JDK-8213362。)为了解决此问题:

或:

  • 在您的应用的脚本中设置 $JAVA_HOME