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

标签 java eclipse command-line-arguments

长话短说,我发现我必须在没有“-XstartOnFirstThread”的情况下启动我的java应用程序。但是,Eclipse 向通过 Eclipse 启动的任何 Java 应用程序提供此参数(请参阅 Debug模式下正在运行的应用程序的属性)。

我看不到这些默认参数的来源以及如何调整或删除它们。 “运行配置”中的参数字段为空,当前 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 会附加此参数。加载该库会导致所描述的问题,即使它没有被使用。

最佳答案

这是一个 Unresolved Eclipse Bug:Bug 211625 - Need option to omit -XstartOnFirstThread for

另请查看this 'workaround' .

关于java - 如何删除 Eclipse 提供的默认命令行参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5865844/

相关文章:

python - 在 python 而不是 shell 中使用命令行参数

java - 如何在Java(TelNet)中实现接收套接字的事件?

java - 如果某个位置有空格,请在文件中添加连字符

java - AdMob - 错误膨胀类 com.google.gms.AdView

java - startActivityForResult() 可以发送数据吗?

windows - Raku:带空格的 shell 调用的语法是什么?

java - GUI 使用 JFrame 和 JPanel 绘制自定义形状

javascript - 需要使用eclipse为Chrome制作一个打包的应用程序

android - 在路径 : DexPathList 上找不到类

haskell - 从 Haskell 中的命令行参数解析 CSV 列表