如何从IProduct中检索Eclipse RCP产品版本

时间:2012-10-09 06:08:46

标签: eclipse rcp

我希望以编程方式确定我的RCP产品的版本。

我找到了Platform.getProduct()方法,它返回一个IProduct对象。但是,这没有版本细节。我可以导航到getDefiningBundle对象,但它只有插件项目的版本ID,而不是.product文件中的版本号。

欢迎任何提示。

3 个答案:

答案 0 :(得分:2)

最终发现,您可以查询p2产品IU以检索已安装产品的版本。我在自定义初始化处理程序中执行此操作,并且有很多空值保护,因为我不完全确定在开发环境启动配置中有多少此API可用。你可能会很乐意删除它们!我想你可能会为特定产品IU构建一个P2查询,而不是像我一样循环遍历所有产品。非常确定它也可以在不使用ProvisioningUI的情况下获取活动配置文件,但这对我来说已经足够了。

command = "\"C:\\test(1)folder\\Launch.bat\"";

答案 1 :(得分:1)

@dystroy所述,IProduct提供的唯一产品版本是定义/品牌包的版本。如果他们匹配,那么你就完成了。

目前,产品版本 存储在产品IU中的RCP应用程序的p2配置文件中。

eclipse -noSplash \
-application org.eclipse.equinox.p2.director \
-metadataRepository \
file://$(pwd)/p2/org.eclipse.equinox.p2.engine/profileRegistry/SDKProfile.profile \
-list | grep ^org.eclipse.sdk.ide

返回org.eclipse.sdk.ide=4.2.2.M20121008-1100。但我不确定从当前运行的实例的p2配置文件中提取IU所需的p2魔法。

答案 2 :(得分:1)

您好,这段代码可以帮助您获取产品文件的版本

IProduct product = Platform.getProduct();

Version version = product.getDefiningBundle()。getVersion();