总而言之,我发现我必须在没有“-XstartOnFirstThread”的情况下启动我的java应用程序。但是,Eclipse将此参数提供给通过Eclipse启动的任何Java应用程序(请参阅调试模式下正在运行的应用程序的属性)。
我无法看到这些默认参数的来源以及我如何调整或删除它们。 “运行配置”中的参数字段为空,我当前JRE的默认参数的字段也是空的(可以通过属性 - > Java - >已安装的JRE - >编辑)找到。
任何帮助将不胜感激!
长篇故事:在启动基于Swing的应用程序时几乎没有逻辑,我收到了错误*** __NSAutoreleaseNoPool(): Object 0x100166860 of class NSConcreteMapTableValueEnumerator autoreleased with no pool in place - just leaking
。我知道应用程序在Windows和Linux下运行正常,因此代码中没有错误。
我出现错误没有问题,因为应用程序已经启动了。但是,我无法与窗口交互。这意味着我无法专注于它(当我将它聚焦时它会自动移动到背景中)并且我无法点击任何按钮或菜单。
在网上挖了一个小时后,我发现了:
-XstartOnFirstThread
和-XstartOnSecondThread
参数)现在我接近我的目标,因为我知道我必须用-XstartOnFirstThread
替换-XstartOnSecondThread
(从控制台测试 - 应用程序在第二个线程上正常运行并抛出已发布的错误第一个线程)。现在我只需要知道如何删除默认参数,该参数提供给通过Eclipse启动的任何java应用程序。
再次感谢!
编辑:如上所述,由于-XstartOnFirstThread
参数,问题就出现了。然而,解决方案不是删除该参数(不可能,请参阅已接受的答案):解决方案是从类路径中删除swt.jar
。
这是因为当swt.jar
在类路径中时,Eclipse会附加此参数。加载库会导致所描述的问题,即使它没有使用。
答案 0 :(得分:6)
这是一个未解决的日食Bug:Bug 211625 - Need option to omit -XstartOnFirstThread for
另请查看this 'workaround'。