Как удалить аргументы командной строки по умолчанию, предоставляемые Eclipse? - PullRequest
2 голосов
/ 03 мая 2011

Короче говоря, я обнаружил, что должен запускать свои Java-приложения без "-XstartOnFirstThread".Тем не менее, Eclipse предоставляет этот аргумент любому java-приложению, запущенному через Eclipse (см. Свойства запущенного приложения в режиме отладки).

Я не могу видеть, откуда берутся эти аргументы по умолчанию и как я могу настроить или удалитьих.Поля аргументов в «Run Configurations» пусты и поля для аргументов по умолчанию для моей текущей JRE также пусты (можно найти через Свойства -> Java -> Установленные JRE -> Редактировать).

Буду признателен за любую помощь!


Длинная история: я получил ошибку *** __NSAutoreleaseNoPool(): Object 0x100166860 of class NSConcreteMapTableValueEnumerator autoreleased with no pool in place - just leaking при запуске приложения на основе Swing практически без логики.Я знал, что приложение работает нормально под Windows и Linux, поэтому это не было ошибкой в ​​коде.

У меня не было проблем с отображением ошибки, поскольку приложение все же запустилось.Однако я не мог взаимодействовать с окном.Это означает, что я не мог сфокусироваться на нем (он автоматически переместился на фон, когда я его сфокусировал), и я не мог нажимать никакие кнопки или меню.

После часа копания в Интернете я обнаружил, что:

  • это проблема, когда SWT и AWT работают одновременно (AWT зависает при загрузке, если загружен SWT)
  • эта проблема возникает только при запуске из затмения, запускаприложение через консоль (без аргументов) все работает нормально
  • эта проблема возникает при использовании неверного потока (упомянутые -XstartOnFirstThread и -XstartOnSecondThread аргументы)

Теперь яЯ близок к своей цели, так как знаю, что мне нужно заменить -XstartOnFirstThread на -XstartOnSecondThread (протестировано с консоли - приложение отлично работает во втором потоке и выдает опубликованную ошибку в первом потоке).Теперь мне нужно только знать, как удалить аргумент по умолчанию, который предоставляется любому java-приложению, запущенному через Eclipse.

Еще раз спасибо!


РЕДАКТИРОВАТЬ: Как упоминалось, проблема возникает из-зак аргументу -XstartOnFirstThread.Однако решение не состояло в том, чтобы удалить этот аргумент (невозможно, см. Принятый ответ): Решение состоит в том, чтобы удалить swt.jar из пути к классам.

Это связано с тем, что Eclipse добавляет этот аргумент, когда swt.jarнаходится в пути к классам.Загрузка библиотеки приводит к описанным проблемам, хотя она не используется.

1 Ответ

6 голосов
/ 03 мая 2011

Это неразрешенное затмение. Ошибка: Ошибка 211625 - Нужна опция, чтобы опустить -XstartOnFirstThread для

Также посмотрите этот 'обходной путь' .

...