Woo*_*low 6 java eclipse osgi eclipse-plugin osgi-bundle
我需要在我正在Eclipse中开发的OSGi包中嵌入第三方JAR文件.我做了很多搜索和阅读,我一遍又一遍地看到同样的事情:
Bundle-ClassPath: ., jar_filename.jar在清单中指定.好的.除了JAR我嵌入很小,不太可能被我在这个封闭系统上实现的任何其他东西使用,因此嵌入它要容易得多,因此用户只需下载一个捆绑包(易于使用) - 用户至关重要).所以我要反对惯例并嵌入它.
现在,在IDE中,一切都是犹太洁食.我把JAR放在src我的Eclipse项目的文件夹中并配置了项目的构建路径,使用"add jar"按钮(不是"添加外部jar",因为我导致相信将使用绝对路径)包含它"配置构建路径"对话框.我还在Bundle-ClassPath我的清单文件中添加了该行.在IDE中,我的所有导入都解析得很好(因为它在构建路径中),但是当我将它作为一个包(默认选项)导出时,错误日志显示导入无法解析.
我检查了生成的最终bundle JAR文件,并且第三方JAR按预期嵌套在(在根目录下),但是一旦它尝试从该库导入对象,它就会失败.
下面是我的(非常基本的)MANIFEST.MF.我错过了什么吗?除了将它列在bundle-classpath之外,我是否需要将其列为import-package?我需要导出它(为什么?)?我错误地使用了bundle-classpath吗?我是否需要做一些不同的事情,因为我正在使用Eclipse?
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: ZWave Demo
Bundle-SymbolicName: com.wbarlow.zwavedemo
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: com.wbarlow.zwavedemo.internal.Activator
Bundle-Vendor: WBARLOW
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Import-Package: org.osgi.framework;version="1.3.0"
Bundle-ClassPath: .,
rxtx-2.1.7.jar
Run Code Online (Sandbox Code Playgroud)
编辑:我通过使用GUI重新完成所有操作来解决这个问题,而不是直接编辑.MF文件.我猜Eclipse会在你这样做时设置一些背景配置.
我没有将 .JAR 放在项目的 src 文件夹中并直接编辑清单文件以引用它,就好像它位于根目录中一样(即使它确实位于捆绑包的根目录中,显然这不起作用),我通过使用 Eclipse 的图形清单编辑器能够解决这个问题。
| 归档时间: |
|
| 查看次数: |
2275 次 |
| 最近记录: |