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