eclipse - 添加额外的系统属性到 Eclipse 编程重启

标签 eclipse equinox

我有一个插件,可以使用以下命令强制重新启动 Eclipse:

Workbench.getInstance().restart();

但是,我需要重新启动以包含新的环境变量:

eclipse.refreshBundles=true

有没有办法只为下次重新启动 Eclipse 添加这样的环境变量?

最佳答案

Eclipse 有 2 种重新启动模式:使用先前的命令行“重新启动”,或使用新命令行“重新启动”。启动器本身会记住之前的命令行,因此为了添加新的系统属性,您需要重新启动。

重新启动/重新启动是 IApplication API 的一部分,如果您设置系统属性 eclipse.exitcode=24,Workbench.restart() 将导致 IDEApplication 返回重新启动。

要重新启动,您需要将新命令行放入 eclipse.exitdata 系统属性中。您需要使用 eclipse.commandseclipse.vmargs 系统属性重建命令行,并添加 -Declipse.refreshBundles=true vm 参数。有关此示例,请查看 org.eclipse.ui.ide 中的 OpenWorkspaceAction,它使用重新启动来切换工作区。

请注意,在重新启动的 eclipse 中,eclipse.refreshBundles 将成为命令行的一部分,并且将保留在那里以供进一步重新启动,除非您修改系统属性。如果您完全退出并重新开始,它就会消失。

关于eclipse - 添加额外的系统属性到 Eclipse 编程重启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1539601/

相关文章:

java - OSGi/Equinox、声明式服务和延迟加载

c++ - 如何在 Eclipse CDT 中为 C++ STL 对象启用 gdb pretty-print ?

android - 导入项目给出了 Unable to resolve target 'android-7'

java - 执行某些代码后关闭 OSGi 容器(以创建命令行工具)

java - 如何通过名称获取 OSGi 包的安装目录(绝对路径)?

eclipse - JavaFx8 + OSGi + Gradle 多项目的工作模块化示例,无需额外工具?

java - 如何使用 Eclipse IDE 查找注解用法?

database - 使用服务名称从 Eclipse 连接到 Oracle Enterprise 11

java - 调用邮政编码 -- Android

java - NoClassDefFoundError 尽管有 OSGi 包