【发布时间】:2011-05-05 01:53:03
【问题描述】:
我想获取我的 Eclipse 安装所具有的插件列表,Eclipse 中是否有一个配置文件可以获取该信息?
我或多或少需要与我访问时获得的相同信息
Help -> About Eclipse Platform -> Installation Details -> Installed Software
如果每个插件有一个条目会更好(在已安装的软件中,每个插件通常有多个条目),但这不是必需的。
【问题讨论】:
我想获取我的 Eclipse 安装所具有的插件列表,Eclipse 中是否有一个配置文件可以获取该信息?
我或多或少需要与我访问时获得的相同信息
Help -> About Eclipse Platform -> Installation Details -> Installed Software
如果每个插件有一个条目会更好(在已安装的软件中,每个插件通常有多个条目),但这不是必需的。
【问题讨论】:
它不在一个文本文件中,但在文件夹 plugins 中,每个安装的插件都有一个文件。每个文件的名称包含 id 和版本。
【讨论】:
在 Eclipse 中,在 About Eclipse Platform → Installation Details → Configuration 下。现在,使用复制到剪贴板并将其保存到文本文件中。
这个文件包含很多信息。除其他外,搜索字符串“*** Plug-in Registry”。你会发现那里列出的所有插件都有确切的开始(活动、已解决、活动等)。
【讨论】:
最后显然没有这样的信息可用,所以为了结束这个问题,我会选择这个,最好截取帮助 -> 关于 Eclipse 平台 -> 安装详细信息 -> 已安装软件对话框近似
【讨论】:
其实有这样的文件。 Plugins 文件夹只是 jar 文件的存储库。它们可能会或可能不会安装到您的 Eclipse 中。是否安装在名为 profile 的文件中描述。
当您从向导或 dropins 文件夹安装新插件时,会创建配置文件的新变异副本,并使用该新副本激活 eclipse。如果安装失败,eclipse 将恢复到以前的配置文件。
试着看看 p2\org.eclipse.equinox.p2.engine\profileRegistry
您可以使用代码 (P2 Agent) 或 Director 应用程序 (P2 Director) 对其进行管理。
您可以像这样获取活动的已安装配置文件:(首先包括一堆 o.e.e.p2.* 包)
BundleContext context = Activator.getInstance().getContext();
IProvisioningAgentProvider provider = (IProvisioningAgentProvider) getService(context, IProvisioningAgentProvider.SERVICE_NAME);
IProvisioningAgent agent = provider.createAgent(agentLocation); // agentLocation = where profiles are
IProfileRegistry registry = (IProfileRegistry) agent.getService(IProfileRegistry.SERVICE_NAME);
String activeProfileId = (String) provisioningAgent.getService(IProvisioningAgent.INSTALLER_PROFILEID);
IProfile profile = registry.getProfile( activeProfileId );
通过配置文件,您可以查询已安装的所有内容。
【讨论】: