我希望以编程方式确定我的RCP产品的版本。
我找到了Platform.getProduct()方法,它返回一个IProduct对象。但是,这没有版本细节。我可以导航到getDefiningBundle对象,但它只有插件项目的版本ID,而不是.product文件中的版本号。
欢迎任何提示。
答案 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();