我开发了一个示例 OSGI 包并将其部署到 Karaf 中,该包包含与源相同级别的文件夹。
我的班级需要从这个文件夹加载数据,但每次我都收到一个错误:
java.lang.IllegalArgumentException: No such group file: ./data/...
我的问题是:如何使用 OSGI Bundle 中文件夹的相对路径?
你试过Bundle.getEntry吗?它是可用于访问包内容的方法之一。
使用包中的上下文解决:
URL wfl = context.getBundle().getResource("data1/file.txt");
或者
URL url = MyClass.class.getClassLoader().getResource("data1/file.txt");
if (url != null) {
mFile = FileLocator.toFileURL(url).getFile();
希望这对某人有帮助