【发布时间】:2023-03-10 08:47:01
【问题描述】:
我有一个包含以下 mainfest 的捆绑包:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: HelloCamera
Bundle-SymbolicName: HelloCamera
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: hellocamera.Activator
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: cameraservice, cameraserviceimpl, org.osgi.framework
Layout:
HelloCamera
-> hellocamera
-> Activator.java
以及带有此清单的第二个捆绑包:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: CameraService
Bundle-SymbolicName: CameraService
Bundle-Version: 1.0.0.qualifier
Bundle-Localization: plugin
Export-Package: cameraservice, cameraserviceimpl
Import-Package: org.osgi.framework
Bundle-Activator: cameraserviceimpl.Activator
Layout:
CameraService
-> cameraservice
-> CameraService.java
-> cameraserviceimpl
-> Activator.java
-> CameraServiceImpl.java
我可以从 Eclipse 运行第一个包,一切正常。然后我将两个包分别导出为CameraService.jar 和HelloCamera.jar
我打开了我的 OSGI 控制台,java -jar equinox.jar -console 和
osgi> install file:CameraService.jar
osgi> install file:HelloCamera.jar
osgi> ss
id State Bundle
17 INSTALLED HelloCamera_1.0.0.qualifier
18 RESOLVED unknown_0.0.0 [18]
然后我得到
The Bundle could not be resolved. Reason: Missing Constraint: Import-Package: cameraservice; version="0.0.0"
【问题讨论】:
-
您将 both 包导出为
jar是什么意思?一个jar,一个捆绑包。 -
@chrylis 我尝试将它们作为一个捆绑包和两个单独的捆绑包一起导出
-
请从“two-
jar”捆绑包中发布您的清单。 (通过将其从 zip 文件中复制出来,而不是从 Eclipse 中复制。) -
@chrylis 我如何从
jar文件中获取maifest? -
第二个捆绑包有一些非常可疑的地方。为什么 OSGi 会将其报告为“已解决”但不知道它的名称?我认为可能 JAR 文件已损坏或清单无效。
标签: java eclipse jar osgi osgi-bundle