Java 从mac应用程序包中的jar捕获错误/堆栈跟踪
我有一个简单的jar应用程序,当直接双击时可以正常工作,但当作为Java 从mac应用程序包中的jar捕获错误/堆栈跟踪,java,macos,Java,Macos,我有一个简单的jar应用程序,当直接双击时可以正常工作,但当作为.app运行时会崩溃 Mac console/system error(Mac控制台/系统错误)应用程序显示退出的,代码为1,表示存在错误 我尝试按照另一个stackoverflow问题的建议,将WorkingDirectory键/值添加到plist中(无法再次找到它…嗯),但是没有成功 我试图找到一种捕获错误/堆栈跟踪的方法,这样我就知道真正的问题是什么,而不仅仅是在黑暗中拍摄 更新#1 经过深入研究,我找到了一种通过调试执行ja
.app
运行时会崩溃
Mac console/system error(Mac控制台/系统错误)应用程序显示退出的,代码为1
,表示存在错误
我尝试按照另一个stackoverflow问题的建议,将WorkingDirectory
键/值添加到plist中(无法再次找到它…嗯),但是没有成功
我试图找到一种捕获错误/堆栈跟踪的方法,这样我就知道真正的问题是什么,而不仅仅是在黑暗中拍摄
更新#1
经过深入研究,我找到了一种通过调试执行java部分的方法:
$ export JAVA_LAUNCHER_VERBOSE
$ ./YourApp.app/Contents/MacOS/JavaApplicationStub
这让我发现POM中的主类路径不正确。这样愚蠢的错误
然而,当打开应用程序使用上述命令时,双击启动
.app
会出现错误-600
好吧,看来我自己已经解决了这个问题
执行以下操作使我能够看到堆栈跟踪,这导致我发现我的
for mac app bundle插件不正确
$ export JAVA_LAUNCHER_VERBOSE
$ ./YourApp.app/Contents/MacOS/JavaApplicationStub
我最终得到的-600错误通过执行
mvn clean
和mvn包
清除了。您是否尝试过从Terminal.app运行它?我的意思是将cd
放入.app
目录并执行它。我尝试在终端中使用open
,但仍然没有看到任何输出,当我直接执行/打开它时,jar文件本身执行没有问题。不,我不是说使用open
。如果我没记错的话,.app
目录中有一些东西可以直接从终端执行。这是一个java应用程序,我们将其捆绑为mac.app,因为最新的mac OS X网关守护程序本身不允许在jar上使用“apple开发者ID”。在应用程序之外,即使从.app内容执行,jar也总是很好。只有当.app是执行jar的源时,它才会失败。我不知道为什么,也看不到任何堆栈痕迹。mac console应用程序仅显示文件名的一些信息,并“以代码1退出”。我找不到堆栈轨迹,等等这是控制台中显示的全部内容: