编辑:
我想要做的是以编程方式将首选项页面添加到 Rclipse-RCP 3.7 应用程序中的首选项菜单。
不幸的是,正如所描述的那样,这似乎无法以编程方式工作
in this post .
作为一种解决方案,我考虑创建一个特殊的插件来维护首选项。此插件应在其 plugin.xml 中声明所有首选项页面,并自行卸载/安装以应用首选项菜单中的更改。
问题:
有没有可能
- 以编程方式更改插件自己的 plugin.xml?
- 是否有可能以编程方式更新插件,从 plugin.xml 重新加载新设置?
最佳答案
了解您要解决的问题而不是您正在做的事情会很有帮助。
一般来说,没有简单的方法可以做您想做的事。
您可以通过使用 OSGi 卸载并重新安装您的包来强制重新加载您的 plugin.xml。请参阅 org.osgi.framework.Bundle.uninstall()
。但是根据 plugin.xml 提供的扩展,不是扩展点消费者被编写为动态感知。
RCP 应用程序的另一个选项是使用 org.eclipse.core.runtime.IExtensionRegistry.addContribution(InputStream, IContributor, boolean, String, ResourceBundle, Object)
贡献扩展。这对于动态添加非常有用,对于删除扩展不太可靠,并且适用相同的警告(扩展点的消费者如何动态感知)。您可以通过将用户 token 设置为空来在 RCP 应用程序中使用它。
关于java - Eclipse RCP - 以编程方式更改 plugin.xml?重新加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11141772/