为什么这个OSGi Import-Package不起作用?

时间:2015-08-14 14:57:45

标签: java eclipse osgi

我正在浏览这个OSGi教程(使用Eclipse,安装了PDE插件):

http://www.vogella.com/tutorials/OSGi/article.html

直到任务10一切正常。但现在我有一个问题:

" Import-Package:org.osgi.framework; version =" 1.3.0" (这是自动生成的,可能是因为生成的Activator类)显示以下错误: "没有可用的捆绑出口包' org.osgi.framework'"

在Activator类中,我也遇到了BundleActivator和BundleContext等类的解决错误。我通过使用外部jar(org.eclipse.osgi)解决了这个问题,但是我很确定这不是正确的方法,因为你应该声明任何依赖关系。 MANIFEST文件。

但是如何添加org.eclipse.osgi jar以使清单中的导入包行足够?

我的整个清单文件:

Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Internal Bundle-SymbolicName: com.osgi.beispiel.one.bundle.internal Bundle-Version: 1.0.0.qualifier Bundle-Activator: com.osgi.beispiel.one.bundle.Activator Bundle-Vendor: OSGI Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Import-Package: org.osgi.framework;version="1.3.0" Bundle-ActivationPolicy: lazy

3 个答案:

答案 0 :(得分:1)

我工作区中“没有可用的捆绑导出包'org.osgi.framework'”的原因是$ {eclipse_home}无效。 “窗口 - 首选项 - 目标平台 - 运行平台”上的复选框标有红色图标。我按照“编辑...”,选择“$ {eclipse_home}”,“编辑...”,然后选中“此安装使用默认配置区域”。离开对话框后,单击“完成”。 “好的”,问题解决了。

答案 1 :(得分:0)

org.eclipse.osgi添加到MANIFEST.MF编辑器中的Dependencies选项卡的'Required Plugins'部分(这将向MANIFEST.MF添加'Require-Bundle'行)。

答案 2 :(得分:0)

这是一个Eclipse配置问题;默认情况下,Eclipse定义了一个路径,该路径用于查找包-该路径可能不包含您的项目所需的包,因此请确保您添加了可以找到相关包的路径:

enter image description here