OSGi/Equinox Bundle 找不到文件



我正在使用Eclipse和Equinox编写两个OSGi捆绑包。

我的第一个捆绑包 A 在项目:捆绑包 A 中。我的第二个捆绑包 B 在捆绑包 B 中。

捆绑包 B 加载一个文件服务器.cfg,该文件位于其项目根目录(IE:workspace/Bundle B/server.cfg)。

当我执行OSGi框架时,它正在从工作区/目录执行,捆绑包B找不到服务器.cfg,因此抛出错误。它正在工作区/服务器中查找.cfg而不是工作区/捆绑包 B/服务器.cfg。

我可以将工作目录更改为捆绑包 B,这将找到服务器.cfg文件。但是,捆绑包 B 随后找不到捆绑包 A 的任何类,因此会引发错误。

我不太确定如何通知包 B 文件的位置,同时仍然能够从 B 访问包 A 的类。

我正在使用Eclipse 3.6.2。


更新:
我已通过执行以下操作解决了此问题:将工作目录设置为包 B,然后在清单文件中导出/导入包 A。这似乎奏效了。

您不必设置工作目录。 尝试:

URL url = bundleB.getEntry("server.cfg");
File file = new File(FileLocator.toFileURL(url).getFile());

还要确保在 build.properties(清单编辑器的"生成"选项卡)中导出服务器.cfg文件。

相关内容

  • 没有找到相关文章

最新更新