Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在运行时获取自定义功能的版本?_Java_Eclipse Plugin_Version_Eclipse Rcp - Fatal编程技术网

Java 如何在运行时获取自定义功能的版本?

Java 如何在运行时获取自定义功能的版本?,java,eclipse-plugin,version,eclipse-rcp,Java,Eclipse Plugin,Version,Eclipse Rcp,还有一个类似的问题,但答案只适用于检测可用插件的版本 然而,我在寻找一种方法,在运行时检索用户定义特性的版本号 比如说,我定义了一个功能com.me.prog.prod.feature,它定义了插件依赖项,后来在产品定义com.me.prog.prod.product中使用。启动com.me.prog.prod.product时,我希望能够检索com.me.prog.prod.feature的版本信息,因为我希望将其用于顶级程序版本控制 有没有办法使用Eclipse RCP框架代码做到这一点?以

还有一个类似的问题,但答案只适用于检测可用插件的版本

然而,我在寻找一种方法,在运行时检索用户定义特性的版本号

比如说,我定义了一个功能
com.me.prog.prod.feature
,它定义了插件依赖项,后来在产品定义
com.me.prog.prod.product
中使用。启动
com.me.prog.prod.product
时,我希望能够检索
com.me.prog.prod.feature
的版本信息,因为我希望将其用于顶级程序版本控制


有没有办法使用Eclipse RCP框架代码做到这一点?

以下内容将为您提供功能部件版本号:

String version = null;
IBundleGroupProvider[] providers = Platform.getBundleGroupProviders();
for (IBundleGroupProvider provider : providers) {
    IBundleGroup[] groups = provider.getBundleGroups();
    for (IBundleGroup group : groups) {
        if ("com.me.prog.prod.feature".equals(group.getIdentifier())) {
            version = group.getVersion();
        }
    }
}

您必须在其中提供特定的功能名称,因为插件可能属于多个功能。

不幸的是,这并不能解决问题。虽然您的代码整齐地列出了平台提供的许多功能(eclipse.rcp、emf、eclipse.help),但没有任何用户定义的功能。我已经用自定义产品和功能设置了测试项目。如果我从产品编辑器导出产品,上面的代码将显示定制特性(尽管在Eclipse启动器中运行时不会显示)。似乎还有许多其他配置设置可能导致该功能未列出,例如未在feature.xml中输入品牌插件。