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