在运行时列出eclipse安装的插件

Bry*_*yji 15 eclipse plugins

这里显而易见的事情应该很容易......

如何在运行时检索已安装插件的列表?看不到一个明显的方法,Platform.getBundle()需要一个特定的插件名称.

这可能是出于某种安全原因的限制吗?

Von*_*onC 12

这里:

BundleContext类有一个getBundles()方法返回所有已安装的包.

您将获得BundleContext激活捆绑包的实例BundleActivator.start(BundleContext)).

例如,您可以使用它来获取一些Bundle版本号.

http://t-templier.developpez.com/tutoriel/java/osgi/osgi1/images/architecture-osgi-haut-niveau.png

捆绑之间的交互是通过两种互补机制完成的:包导出/导入和服务注册查找工具.

http://sfelix.gforge.inria.fr/osgi-security/images/osgi/osgi_interoperability.png

服务的发布和查找是通过BundleContext每个包在启动时接收引用来执行的.
在发布过程中,广告包通过发布它正在实现的Java接口来注册服务,并通过提供实现该接口的类来注册服务.
查找由客户端包执行,客户端包从中获取服务BundleContext并将其用作标准Java对象.