Java Eclipse插件开发人员:如何获取当前捆绑包版本?

Java Eclipse插件开发人员:如何获取当前捆绑包版本?,java,osgi,eclipse-plugin,manifest.mf,Java,Osgi,Eclipse Plugin,Manifest.mf,在Eclipse插件开发中:如何获得当前的捆绑包版本 它就在Manifest.MF中 Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Nodeclipse Bundle-SymbolicName: org.nodeclipse.ui;singleton:=true Bundle-Version: 0.6.0.qualifier Bundle-Activator: org.nodeclipse.ui.Activator Re

在Eclipse插件开发中:如何获得当前的捆绑包版本

它就在Manifest.MF中

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Nodeclipse
Bundle-SymbolicName: org.nodeclipse.ui;singleton:=true
Bundle-Version: 0.6.0.qualifier
Bundle-Activator: org.nodeclipse.ui.Activator
Require-Bundle: org.eclipse.ui,
然而,Java的方法只是查看捆绑包的实现版本
getClass().getPackage().getImplementationVersion()

在您可以使用的插件中:

Bundle bundle = Platform.getBundle("org.nodeeclipse.ui");
Version version = bundle.getVersion();
Version
getMajor
getMinor
getMicro
getQualifier
方法


Platform
org.eclipse.core.runtime.Platform

以一种更OSGi的方式,不必知道您的名字,并且是官方标准方式:

 Version version = FrameworkUtil.getBundle(getClass()).getVersion();

请注意,您获得的bundle版本来自加载this的bundle。所以不要把它放在另一个包中的便利库中

我觉得这个太脆了。如果捆绑包名称更改,此代码将不再工作。@RaffiKhatchadourian如果您想要当前运行的捆绑包,请使用FrameworkUtil.getBundle。但是,当您处理扩展点定义之类的事情时,您所拥有的只是插件id,因此在这种情况下,请使用此方法。