【发布时间】:2014-04-12 18:39:35
【问题描述】:
我用 Eclipse 编写了一个 Java 应用程序,它使用 SWT 作为 UI。 (详见SWT Exception when running jar: Exception in thread "main" org.eclipse.swt.SWTException: Invalid thread access)。
我导出为 JAR,但无法从 Finder 和终端运行它。我终于用java -XstartOnFirstThread -jar CommonDenom.jar从终端运行它了
但是,当我从 Eclipse 导出为 JAR 时,我仍然无法运行它。这是因为它需要在导出时绑定参数-XstartOnFirstThread。然后我注意到在Properties >> Run/Debug Settings >> commonDenom >> Edit >> (x)= Arguments 中有一个勾选框,上面写着“使用SWT 启动时使用-XstartOnFirstThread 参数”。但是已经检查过了。所以我认为这个选项只适用于使用 Eclipse 启动代码时,不适用于导出的 JAR。
所以我手动将参数添加到同一选项卡中的VM Arguments 框中。当我将导出为可运行 JAR 时,我注意到一条警告显示“VM 参数不会成为可运行 JAR 的一部分。启动 JAR 时可以在命令行上传递参数。
最终,我需要一种方法来让它从 finder(无论是 JAR 还是其他)启动,而无需打开终端并手动启动它。是的,我可以写一个Shell脚本来启动它,但我觉得一定有更简单的方法。
【问题讨论】:
标签: java eclipse macos jar swt