我负责部署在包括 OS X 在内的多个平台上的 Java 应用程序。对于最近版本的应用程序,我们为 OS X 分发了两个单独的包——一个使用 Apple 提供的 JavaApplicationStub,另一个包含捆绑的 JDK 7并使用内部生产的启动器(Oracle 的 JavaAppLauncher 的修改)。
问题是,对于后者,如果您尝试运行应用程序,Mac OS X 仍然坚持要求您安装 Java 6。具体来说,消息说:
“要打开(应用程序),您需要一个 Java SE 6 运行时。您想现在安装一个吗?”
如果您不安装 Java SE 6,您将无法运行该应用程序,尽管 JDK 7 已捆绑(并且,如果您安装了 Java 6,它仍然与捆绑的 Java 7 一起运行)。
我正在努力弄清楚 OS X 如何决定应用程序需要 Java?我尝试重命名 Info.plist 文件中的“Java”字典,并重命名 Resources 文件夹中的 Java 子文件夹,但均未成功。有没有人有任何想法?是否可以在不需要安装系统 JDK 的情况下运行带有捆绑 JDK 的应用程序?