我是 OSGi 的新手,我创建了一个 OSGi 捆绑包,我在 Apache Felix OSGi 容器中运行它。捆绑包中包含一个文件资源,我需要将其作为java.io.File
. 要实例化文件对象,“文件”方案中的 URI 或字符串形式的路径是必需的。如何以干净的方式检索其中的任何一个?
我尝试使用
返回 URI的context.getBundle().getResource("/myfile")
(其中 context 是 type ) 。但是这个 URI 不能使用构造函数转换为 File-instance,因为它有“bundle”-scheme。org.osgi.framework.BundleContext
bundle://6.0:0/myfile
File(URI uri)
可以尝试构建一个知道工作目录并利用我的包的 bundleId 的位置的路径,但我怀疑这是最佳实践。
有任何想法吗?