这是显而易见的事情,应该很容易做...

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

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

最佳答案

here

BundleContext类具有getBundles()方法,该方法返回所有已安装的捆绑软件。

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

您可以使用它来获取一些Bundle version number例如。



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



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

09-11 17:26