Eclipse-plugin-dev:如何获取当前的bundle版本?

Pau*_*est 11 java osgi eclipse-plugin manifest.mf

在Eclipse插件开发中:如何获取当前的bundle版本?

它就在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,
Run Code Online (Sandbox Code Playgroud)

但是Java只有查看Bundle Implementation版本的方法 getClass().getPackage().getImplementationVersion();

Pet*_*ens 22

以更OSGi的方式,不必知道您的名字和官方标准方式:

 Version version = FrameworkUtil.getBundle(getClass()).getVersion();
Run Code Online (Sandbox Code Playgroud)

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


gre*_*449 13

在插件中,您可以使用:

Bundle bundle = Platform.getBundle("org.nodeeclipse.ui");
Version version = bundle.getVersion();
Run Code Online (Sandbox Code Playgroud)

VersiongetMajor,getMinor,getMicro,getQualifier方法.

Platformorg.eclipse.core.runtime.Platform

  • @RaffiKhatchadourian如果你想要当前运行的bundle,是的,请使用FrameworkUtil.getBundle.但是,当您处理扩展点定义时,您所拥有的只是插件ID,因此在这种情况下使用此方法. (3认同)