我有一个插件,通过使用强制重启 Eclipse:
Workbench.getInstance().restart();
但是,我需要重新启动以包含一个新的环境变量:
eclipse.refreshBundles=true
有没有办法为下次重启 Eclipse 添加这样的环境变量?
Eclipse 有 2 种重新启动模式:“重新启动”使用先前的命令行,或“重新启动”使用新的命令行。启动器本身会记住之前的命令行,因此为了添加新的系统属性,您需要重新启动。
重新启动/重新启动是 IApplication API 的一部分,如果您设置系统属性,Workbench.restart() 将导致 IDEApplication 返回重新启动eclipse.exitcode=24
。
对于重新启动,您需要将新命令行放在eclipse.exitdata
系统属性中。您将需要使用eclipse.commands
和eclipse.vmargs
系统属性重建命令行,并添加一个-Declipse.refreshBundles=true
vm 参数。例如,请查看OpenWorkspaceAction
org.eclipse.ui.ide,它使用重新启动来切换工作区。
请注意,在重新启动的 eclipse 中,eclipse.refreshBundles 将成为命令行的一部分,除非您修改系统属性,否则将保留在那里以供进一步重新启动。如果您完全退出并重新开始,它将消失。