1

我必须从这个线程 Importing "outside" java class in embedeed OSGi equinox framework更新我的问题。是否可以通过系统包(或任何其他方式)导入没有清单文件的常规 java 包(不是包)并在已安装的包中使用它?

4

2 回答 2

1

是的,您可以在 OSGi 中使用普通 jar 中的类。您只需将类添加到框架启动器的类路径中,并将您需要的包添加到 org.osgi.framework.system.packages.extra 属性。

系统包负责将类从非 OSGi 类路径导出到 OSGi 系统。

不过,这种方式与正常的捆绑部署有点不一致。因此,更好的方法可能是使用 bnd 工具或 maven bundle 插件将非 OSGi jar 转换为常规包。

于 2013-09-24T07:57:24.893 回答
0

OSGi 确实使用“常规 Java 类”;不同之处在于 jar 清单,它将它们变成了捆绑包。您想要包含在 OSGi 安装中的任何 jar 都必须有一个捆绑清单,其中列出了它的依赖项和它提供的内容。

于 2013-09-23T10:56:16.137 回答