Java 从mac应用程序包中的jar捕获错误/堆栈跟踪

Java 从mac应用程序包中的jar捕获错误/堆栈跟踪,java,macos,Java,Macos,我有一个简单的jar应用程序,当直接双击时可以正常工作,但当作为.app运行时会崩溃 Mac console/system error(Mac控制台/系统错误)应用程序显示退出的,代码为1,表示存在错误 我尝试按照另一个stackoverflow问题的建议,将WorkingDirectory键/值添加到plist中(无法再次找到它…嗯),但是没有成功 我试图找到一种捕获错误/堆栈跟踪的方法,这样我就知道真正的问题是什么,而不仅仅是在黑暗中拍摄 更新#1 经过深入研究,我找到了一种通过调试执行ja

我有一个简单的jar应用程序,当直接双击时可以正常工作,但当作为
.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退出”。我找不到堆栈轨迹,等等这是控制台中显示的全部内容: