Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MacOSX如何确定应用程序需要Java?_Java_Macos - Fatal编程技术网

MacOSX如何确定应用程序需要Java?

MacOSX如何确定应用程序需要Java?,java,macos,Java,Macos,我负责一个Java应用程序,该应用程序部署在包括OS X在内的多个平台上。在最新版本的应用程序中,我们为OS X分发了两个单独的捆绑包——一个使用苹果提供的JavaApplicationStub,另一个包含捆绑的JDK 7,并使用内部生产的启动器(对Oracle的JavaAppLauncher进行了修改) 问题是,对于后一个捆绑包,如果您试图运行应用程序,Mac OS X仍然坚持要安装Java 6 要打开(应用程序),您需要一个Java SE 6运行时。是否立即安装一个 如果不安装JavaSE6

我负责一个Java应用程序,该应用程序部署在包括OS X在内的多个平台上。在最新版本的应用程序中,我们为OS X分发了两个单独的捆绑包——一个使用苹果提供的JavaApplicationStub,另一个包含捆绑的JDK 7,并使用内部生产的启动器(对Oracle的JavaAppLauncher进行了修改)

问题是,对于后一个捆绑包,如果您试图运行应用程序,Mac OS X仍然坚持要安装Java 6

要打开(应用程序),您需要一个Java SE 6运行时。是否立即安装一个

如果不安装JavaSE6,则无法运行应用程序,尽管JDK7是捆绑的(并且,如果安装Java6,它仍然与捆绑的Java7一起运行)

我正在努力弄清楚的是OS X是如何决定应用程序需要Java的?我尝试过重命名Info.plist文件中的“Java”字典,并重命名Resources文件夹中的Java子文件夹,但没有成功。有人有什么想法吗?当然有可能在不需要Java的情况下运行捆绑JDK的应用程序要安装系统JDK吗?

我找到了答案(在macosx端口上Mike Swingler的帮助下)-dev@openjdk.java.net邮件列表)

Info.plist文件中存在“Java”字典是触发对话框的原因,但是,在尝试启动应用程序后更改字典的名称还不够好。系统以某种方式缓存对Java的需求,因此只需再次发出对话框。为了避免这种情况,有必要下载新的应用程序副本打开并在第一次尝试运行它之前进行更改(我被告知,重命名应用程序就足够了,甚至可以重命名它,然后再次返回到原始名称)


幸运的是,这意味着我们所要做的就是更改“Java”字典的名称,并更改我们的定制启动器,使其使用新的字典名称。

有任何帮助吗?“另一个包括捆绑JDK 7的”DYM JRE 7?Gamb,不。我们没有使用苹果公司的JavaAppLauncher。问题不是它使用了错误的JDK运行,而是它坚持要安装Java 6。Andrew Thompson,我是说JDK.searching产生了--看起来你需要在系统上加一个符号链接来防止出现提示?