如先前答案中所写,如果要在包中使用其他库,则有两个选择:
- 将库jar嵌入将在其中使用的捆绑软件中,
- 从库中创建有效的OSGi捆绑包。
第 一种方法 比较简单,因为您只需要将库jar(及其所有依赖项)复制到包(例如,复制到根目录)中,然后将它们添加到中的
Bundle-Classpath元素中
MANIFEST.MF(请参见此处)。但是,在执行此 *** 作时,您必须记住,此添加的库仅在嵌入它的捆绑包中才可见(因此,库重用受到限制)。您总是可以从该库中将包添加到
Export-package元素中,
MANIFEST.MF以使其对其他捆绑包可见,但这远不是优雅的解决方案(但是它将起作用)。
为了使其对其他捆绑包可见,您应该使用 第二种方法
,即从库中创建OSGi捆绑包(有一些工具可以在Eclipse中帮助您做到这一点)。但是,对于更复杂的库,此方法可能会更困难(由于OSGi中的依赖关系和特定的类加载方法)。
因此,如果您只想在一个捆绑软件中使用该库,我建议您使用第一种方法(易于实现)。如果要在应用程序的许多捆绑软件中使用此库,则应考虑第二种方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)