2

我试图弄清楚 Mac 上可用的所有不同 JDK/JRE 是如何交互的。我在 Lion 上的 XCode 4.6 中创建了一个虚拟 Cocoa 应用程序项目,并添加了 JavaVM.framework。我还添加了一个#include 以确保它在搜索路径中,并构建了应用程序。当我尝试在未安装 Java 的 Mountain Lion 机器上运行该应用程序时,OS X 会提示为 OS X 2013-002 安装 Java,如果已安装则运行该应用程序。令我惊讶的是,即使机器上已经安装了 Oracle 的 JRE 或 JDK (1.7),OS X 仍然会尝试安装它。

有没有办法让用户选择他想要安装哪个 JRE,而不会丢失 Apple 提供的让用户在需要时安装 JRE 的回退提示?

4

1 回答 1

1

有没有办法让用户选择他想要安装哪个 JRE,而不会丢失 Apple 提供的让用户在需要时安装 JRE 的回退提示?

不。

JavaVM.framework仅适用于 Apple Java,正如您所发现的,它将忽略恰好安装在机器上的任何 Oracle Java 7 JRE 或 JDK。同样,如果您使用 Oracle 的<appbundler>任务来构建.app与 Oracle Java 7 一起使用的任务,它将不会使用 Apple Java 6。我相信这些天推荐的方法是将 Oracle JRE 捆绑在您的内部.app<appbundler>可以为您做某事)并使用那个而不是依赖于系统范围的 Java 安装。

于 2013-04-10T16:32:35.523 回答