检测Eclipse中已安装的插件



我想从我维护的Eclipse插件中检测插件的存在。从其他几个关于这个主题的问题来看,这似乎很难。

我要检测的插件提供了一个视图。因此,下面的工作,但我希望有一个更漂亮的选择:

public static boolean internalPluginInstalled() {
IExtensionRegistry reg = Platform.getExtensionRegistry();       
IExtensionPoint point = reg.getExtensionPoint("org.eclipse.ui.views");
IExtension[] extensions = point.getExtensions();
for(IExtension extension : extensions) {
IConfigurationElement[] configs = extension.getConfigurationElements();
for (IConfigurationElement config : configs) {
if (config.getName().equals("view") && config.getAttribute("id").equals("view.id.goes.here")) {
return true;
}
}
}
return false;
}

UsePlatform.getBundle(org.eclipse.core.runtime.Platform):

Bundle bundle = Platform.getBundle("plugin id");

如果安装了插件,bundle将是非空值。

bundle.getState()返回插件的确切状态—如果插件已经启动,则返回Bundle.ACTIVE

最新更新