使用Require-Bundle启动osgi包失败:org.eclipse.core.runtime;束版本=“0.0.0”

时间:2012-03-20 14:06:36

标签: eclipse osgi equinox

我正在尝试安装外部捆绑并将其加载到简单的equinox应用程序。

目标捆绑包来自eclipse的一组插件:

http://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/2.4/rodin-2.4-dev.zip)。

当我开始昼夜平分点时:

$ java -jar org.eclipse.osgi_3.7.1.R37x_v20110808-1106.jar -console

我可以安装它

osgi> install file:///path_to/rodin-2.4-dev/org.eventb.core_2.4.0.r14093.jar
Bundle id is 1

但是当我开始时我有一个例外:

osgi> start 1
org.osgi.framework.BundleException: The bundle "org.eventb.core_2.4.0.r14093 [1]" 
  could not be resolved. Reason: Missing Constraint: Require-Bundle:  
  org.eclipse.core.runtime; bundle-version="0.0.0"

有谁知道如何解决此错误?

也许它与捆绑包不包含org.eclipse.core.runtime版本的事实有关,因为MANIFEST.MF具有以下Require-Bundle:

Require-Bundle: org.eclipse.core.runtime,org.rodinp.core;visibility:=r
  eexport,org.eventb.core.ast;visibility:=reexport,org.eventb.core.seqp
  rover;visibility:=reexport

1 个答案:

答案 0 :(得分:5)

正如您所注意到的那样,bundle对运行时核心有一个要求。安装只是安装捆绑包,并不意味着它是有效的。您可以通过diag命令检查捆绑包的状态,即osgi> diag 1

需要将状态解析为可运行。我敢打赌它只是为你安装状态。查看Dude, where's my bundle以获取有关捆绑及其状态的更多信息。