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

Kar*_*och 1 eclipse osgi equinox

我正在尝试安装并将外部包加载到一个简单的equinox应用程序.

目标bundle来自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
Run Code Online (Sandbox Code Playgroud)

我可以安装它

osgi> install file:///path_to/rodin-2.4-dev/org.eventb.core_2.4.0.r14093.jar
Bundle id is 1
Run Code Online (Sandbox Code Playgroud)

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

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"
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个错误?

也许它与bundle不包含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
Run Code Online (Sandbox Code Playgroud)

Fre*_*rik 5

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

它需要在状态下解析为可运行.我敢打赌它只是为你安装状态.检查Dude,我的捆绑包中有关捆绑及其状态的更多信息.