我负责部署在包括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运行应用程序吗?
我找到了答案(在 macosx-port-dev@openjdk.java.net 邮件列表上的 Mike Swingler 的帮助下)。
Info.plist 文件中存在“Java”字典是触发该对话框的原因,但是,在尝试启动应用程序后更改字典的名称还不够好。系统以某种方式缓存了 Java 的要求,因此只需再次发出对话框即可。为了避免这种情况,有必要下载应用程序的新副本并在第一次尝试运行它之前进行更改(我被告知,因为重命名应用程序就足够了,甚至可以重命名它,然后再次返回到原始版本)姓名)。
幸运的是,这意味着我们所要做的就是更改“Java”字典的名称,并更改我们的自定义启动器,以便它使用新的字典名称。
归档时间: |
|
查看次数: |
1528 次 |
最近记录: |