我正在尝试为OSX打包Java应用程序。我六个月前创建的旧版本工作正常。它位于名为Intonia.app的目录中,其中包含Intonia.app/Contents/Resources/Java
中的jar文件。我可以点击Finder中的应用程序,我的代码运行得很好。
现在我有一个拒绝运行的更新版本。当我双击应用程序时,应用程序图标会短暂出现在Dock中,并消失。控制台应用程序显示一条消息,"com.apple.launchd.peruser.501: (com.intonia.tony.Intonia.60048[531]) Exited with code 1."
然而,当我在Finder中查看包内容并双击Intonia.jar图标时,我的应用程序运行正常。
我可以在app目录中交换旧的和新的jar文件,使目录中的所有其他文件保持不变。旧的jar文件既可以作为应用程序运行,也可以双击.jar文件。新文件不作为应用程序运行,但双击.jar文件可以正常运行。
旧jar和新jar都具有相同名称的com.intonia.tony.Intonia.main()
作为入口点。旧版本包含名为com.intonia.tony的包中的所有类。新版本将这些类划分为com.intonia.tony
和com.intonia.common
。
如果有更好的地方可以提出这个问题,请随时转到另一个论坛。
答案 0 :(得分:0)
事实证明,旧的jar文件是在Eclipse中编译的,编译器合规级别为1.5,新文件是用1.7编译的。我用1.5级重新编译,它运作良好。
此时我的问题就解决了。我会把它留给其他人来弄清楚为什么应用程序启动器无法处理它,或者为什么我得到的消息是如此不透明。