这显然应该很容易做到......
如何在运行时检索已安装插件的列表?看不到一个明显的方法,Platform.getBundle()需要一个特定的插件名称。
这可能是出于某种安全原因的限制吗?
答案 0 :(得分:12)
来自here:
BundleContext
类有getBundles
()方法,可返回所有已安装的包。
当您的捆绑包被激活BundleContext
时,您会获得BundleActivator.start(BundleContext))
的实例。
例如,您可以使用它来获取一些Bundle version number。
捆绑之间的交互是通过两种互补机制完成的:包导出/导入和服务注册查找工具。
服务的发布和查找是通过每个捆绑包在启动时收到的BundleContext
参考执行的。
在发布过程中,广告包通过发布它正在实现的Java接口来注册服务,并提供实现此接口的类。
查找由客户端包执行,客户端包从BundleContext
获取服务并将其用作标准Java对象。
答案 1 :(得分:4)
如果您希望在代码中写下此内容,请参阅VonC的回答。
如果你只是想要一个这样做的视图,那么eclipse中已有一个:Window-> Show View-> Other ...-> PDE Runtime->插件注册表。这会显示插件,扩展,依赖关系以及提供扩展的人员。
答案 2 :(得分:2)
使用以下代码获取RCP中安装的插件列表
BundleContext ctx = FrameworkUtil.getBundle(your/Class/Name.class).getBundleContext();
Bundle[] bundles = ctx.getBundles();