如何删除Eclipse提供的默认命令行参数?

时间:2011-05-03 06:25:09

标签: java eclipse command-line-arguments

总而言之,我发现我必须在没有“-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下运行正常,因此代码中没有错误。

我出现错误没有问题,因为应用程序已经启动了。但是,我无法与窗口交互。这意味着我无法专注于它(当我将它聚焦时它会自动移动到背景中)并且我无法点击任何按钮或菜单。

在网上挖了一个小时后,我发现了:

  • 这是SWT和AWT同时运行的问题(如果加载SWT,AWT将挂起加载)
  • 这个问题只发生在从eclipse开始,通过控制台启动应用程序(没有参数)一切正常运行
  • 使用错误的线程时出现此问题(提到的-XstartOnFirstThread-XstartOnSecondThread参数)

现在我接近我的目标,因为我知道我必须用-XstartOnFirstThread替换-XstartOnSecondThread(从控制台测试 - 应用程序在第二个线程上正常运行并抛出已发布的错误第一个线程)。现在我只需要知道如何删除默认参数,该参数提供给通过Eclipse启动的任何java应用程序。

再次感谢!


编辑:如上所述,由于-XstartOnFirstThread参数,问题就出现了。然而,解决方案不是删除该参数(不可能,请参阅已接受的答案):解决方案是从类路径中删除swt.jar

这是因为当swt.jar在类路径中时,Eclipse会附加此参数。加载库会导致所描述的问题,即使它没有使用。

1 个答案:

答案 0 :(得分:6)

这是一个未解决的日食Bug:Bug 211625 - Need option to omit -XstartOnFirstThread for

另请查看this 'workaround'