使用 OSGi 中的导入机制,可以直接从另一个包中导入包。但是,我未能成功导入存在于 bundle “根”中的资源。
是否可以将不在包范围内的资源导入到另一个包中?
我想实现的是:
Bundle A 在“root”中有一个文件资源
Bundle B 导入 Bundle A:s 包和资源。 通过 bundle B:s ClassLoader,我希望能够加载 bundle A 中的资源,就好像它存在于 Bundle B 中一样。
最佳答案
bundle 根目录中的资源位于“默认”包中,无法导入或导出。
如果您真的必须通过类加载器访问资源,则需要将它们移动到一个包中并导出该包。否则,您可以使用 Bundle.getEntry()
从任何包的任何位置读取资源。
关于java - 从 OSGi 包导入资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7564370/