这是显而易见的事情,应该很容易做...
如何在运行时检索已安装插件的列表?看不到一种明显的方法,Platform.getBundle()需要特定的插件名称。
这是出于某种安全原因的限制吗?
最佳答案
从here:BundleContext
类具有getBundles
()方法,该方法返回所有已安装的捆绑软件。
激活捆绑包BundleContext
后,您将获得BundleActivator.start(BundleContext))
的实例。
您可以使用它来获取一些Bundle version number例如。
包之间的交互是通过两种互补的机制完成的:程序包导出/导入和服务注册查找工具。
服务的发布和查找通过每个捆绑包在启动时收到的BundleContext
引用执行。
在发布过程中,广告捆绑包通过发布它正在实现的Java接口并提供实现此接口的类来注册服务。
查找由客户端捆绑软件执行,该捆绑软件从BundleContext
获取服务并将其用作标准Java对象。