2014-11-05 233 views
0

我想为OSX打包Java应用程序。我在六个月前创建的旧版本可以正常工作。它全部位于一个名为Intonia.app的目录中,其中的jar文件位于Intonia.app/Contents/Resources/Java。我可以点击Finder中的应用程序,我的代码运行得很好。java osx应用程序无法启动

现在我有一个拒绝运行的更新版本。当我双击应用程序时,应用程序图标会短暂出现在扩展坞中,然后消失。控制台应用程序显示消息,"com.apple.launchd.peruser.501: (com.intonia.tony.Intonia.60048[531]) Exited with code 1."但是,当我在Finder中查看包内容并双击Intonia.jar图标时,我的应用程序运行正常。

我可以交换应用程序目录中的旧jar文件和新jar文件,使目录中的所有其他文件保持不变。旧的jar文件作为应用程序运行,并通过双击.jar文件运行。新文件不作为应用程序运行,但双击.jar文件即可运行。

旧罐子和新罐子都具有相同名称的​​作为入口点。旧版本的所有类都放在名为com.intonia.tony的包中。新版本将com.intonia.tonycom.intonia.common之间的类分开。

如果有更好的地方提出这个问题,请随时指导我到另一个论坛。

+0

不知道是否有帮助,但你可以看看[this](http://superuser.com/questions/194094/how-do-i-get-rid-of-com-apple-launchd-peruser- errors-in-my-log)和[this](http://superuser.com/questions/686922/causes-of-com-apple-launchd-peruser-501-exited-with-code-1)和[this ](http://superuser.com/questions/361475/com-apple-launchd-com-apple-launchd-peruser-error)。 – MadProgrammer 2014-11-05 03:55:09

回答

0

事实证明,旧的jar文件是在Eclipse中编译的,编译器符合性级别为1.5,新文件编译为1.7。我重新编译了1.5级,它工作。

在这一点上,我的直接问题得到解决。我会把它留给别人去弄清楚为什么应用程序启动器无法处理它,或者为什么我得到的消息太不透明了。