Полный пример здесь:
ичок в OSGi и создал OSGi-комплект, который запускаю в Apache Felix OSGi-контейнере. В пакете содержится файловый ресурс, который мне нужно передать методу какjava.io.File
, Для создания экземпляра File-объекта необходим либо URI в схеме «file», либо путь в виде строки. Как я могу получить любой из них в чистом виде?
Я пытался использоватьcontext.getBundle().getResource("/myfile")
(где контекст имеет типorg.osgi.framework.BundleContext
) который возвращает URIbundle://6.0:0/myfile
, Но этот URI не может быть преобразован в экземпляр файла с помощьюFile(URI uri)
конструктор, так как он имеет "расслоение" -схема.
Можно попытаться построить путь к местоположению, зная рабочий каталог и используя bundleId моего пакета, но я сомневаюсь, что это лучший метод.
Есть идеи?