Добавление дополнительных системных свойств для программного перезапуска Eclipse - PullRequest
2 голосов
/ 08 октября 2009

У меня есть плагин, который вызывает перезапуск Eclipse с помощью:

Workbench.getInstance().restart();

Однако мне нужен этот перезапуск, чтобы включить новую переменную среды:

eclipse.refreshBundles=true

Можно ли добавить такую ​​переменную среды только для следующего перезапуска Eclipse?

1 Ответ

4 голосов
/ 09 октября 2009

Eclipse имеет 2 режима перезапуска: «перезапуск» с использованием предыдущей командной строки или «перезапуск» с использованием новой командной строки. Сам модуль запуска запомнит предыдущую командную строку, поэтому для добавления нового системного свойства вам потребуется выполнить повторный запуск.

Перезапуск / перезапуск является частью API IApplication, Workbench.restart () заставит IDEApplication вернуть перезапуск, если вы установили системное свойство eclipse.exitcode=24.

Для повторного запуска вам нужно поместить новую командную строку в системное свойство eclipse.exitdata. Вам нужно будет восстановить командную строку, используя системные свойства eclipse.commands и eclipse.vmargs, и добавить аргумент -Declipse.refreshBundles=true vm. Для примера рассмотрим OpenWorkspaceAction в org.eclipse.ui.ide, который использует перезапуск для переключения рабочих пространств.

Обратите внимание, что в перезапущенном затмении eclipse.refreshBundles будет частью командной строки и останется там для дальнейших перезапусков, если вы не измените системные свойства. Он исчезнет, ​​если вы выйдете полностью и начнете снова.

...