OSX Java App Bundle可在一台Mac上运行,但不能在另一台Mac上运行。

时间:2015-02-17 18:46:56

标签: java macos bundle

我编写了一个java应用程序,并使用Oracle的appbundler ANT任务将其打包到OSX App Bundle中。应用程序包在它开发的机器(MacBook Pro)上工作正常,但是当我将它复制到我的MacBook Air时,它无法启动,并显示“应用程序'MyApp'无法打开”的错误。根本没有其他诊断或信息。

两台Mac都在运行最新版本的Yosemite,两者都在安全性首选项中启用了“从任何位置运行应用程序”,并且都安装了Java 1.8。如果我将Jars直接复制到MacBook Air,并双击主类Jar,应用程序会正确启动 - 所以它与捆绑有关,而不是java应用程序本身。

任何想法从哪里开始调试?

2 个答案:

答案 0 :(得分:1)

  

应用程序包在它开发的机器(MacBook Pro)上工作正常,但当我将它复制到我的MacBook Air时无法启动

然后问题可能在于您在两台计算机之间复制应用程序包的方式 - 无论您使用什么机制进行复制,都需要确保它保留对包中文件的权限设置,特别是Contents/MacOS中的可执行存根在目标系统上仍然可执行。如果您将.app打包到.zip文件中(右键单击Finder中的应用程序,“压缩(应用程序名称)”并复制zip文件而不是.app目录本身,然后应该保留权限。

答案 1 :(得分:0)

您是否有机会在一台或两台Mac上安装多个版本的Java?如果是这样,你检查了你的JAVA_HOME设置了什么? / usr / libexec / java_home脚本可用于确定您拥有的不同Java安装,例如: java_home -V

Apple java_home docs