Как мне получить доступ к файлу внутри пакета OSGi?

Я новичок в 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 моего пакета, но я сомневаюсь, что это лучшая практика.

Есть идеи?

14
задан mtsz 24 June 2011 в 23:11
поделиться