获取Eclipse RCP应用程序中已安装功能的列表

时间:2012-10-12 07:38:40

标签: java eclipse osgi eclipse-rcp

我正在尝试通过代码重新创建已安装的功能列表(就像您在已安装的eclipse软件列表中找到的那样)。

如果我的RCP应用程序的当前状态中存在某些功能,我想检查代码。

我尝试使用此处创造的API:How can my Eclipse RCP code list all installed features?

但我似乎无法重新创建所有功能的列表。 (只有大约9个功能......)

这是我正在使用的代码:

IBundleGroupProvider[] providers = Platform.getBundleGroupProviders();
IBundleGroup[] groups = providers[0].getBundleGroups();

然后,当我迭代这些组时,我找不到自定义功能......

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

这可能有用吗?

for (IBundleGroupProvider provider : Platform.getBundleGroupProviders()) {
   for (IBundleGroup feature : provider.getBundleGroups()) {
      final String providerName = feature.getProviderName();
      final String featureId = feature.getIdentifier();
      for (Bundle bundle : feature.getBundles()) {
         ...
      }
   }
}

答案 1 :(得分:1)

上面的代码段没有列出我的捆绑包。但是,如果捆绑存在,则进行以下测试:

Bundle plugin = Platform.getBundle("my.bundle.id");
if (plugin != null) {
    System.out.println("- bundle found: " + plugin.getSymbolicName());
}