获取在Eclipse RCP应用程序

问题描述:

我试图重建的已安装的功能(就像你可以在Eclipse的安装软件列表中找到)通过代码列表中已安装的功能列表。获取在Eclipse RCP应用程序

我想在代码来检查,如果某些特征存在于我的RCP应用程序的当前状态。

我试着用在这里创造了一个API:How can my Eclipse RCP code list all installed features?

但我似乎无法重现的所有功能列表。 (只得到约9功能...)

这是我使用的代码:

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

然后当我遍历组我无法找到我的自定义功能...

有什么想法吗?

+1

为什么要这样做?您应该在自己的代码中使用依赖关系或可选的依赖关系到其他功能和插件中,但明确列出已安装的功能听起来像是另一个问题的粗略解决方法,一见钟情。 – Bananeweizen

+0

那么实际上我觉得有点哑后来..我只是希望能够检查是否安装可选插件...(以显示附加信息)的视图,但你完全不必列出已安装的功能能够检查......但还是如果有人能告诉我如何做到这一点。我很想知道它是怎么做的:)这就是为什么我不关闭这个主题 – Arninja

+0

请接受我asnser如果它的工作/帮助你! –

这可能会实现?

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()) { 
     ... 
     } 
    } 
} 

上面的代码片段没有列出我的包。但是,如果测试束是否存在,则以下测试工作:

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