Доступ к относительному пути из eclipse-plugin - PullRequest
3 голосов
/ 06 июня 2011

Кто-нибудь знает, как получить файл с URI из самодельного Eclipse-плагина?

Абсолютные пути не будут проблемой:

URI.createFileURI("C:/Users/hp/workspace(dke)/SMartGen/StarSchema.profile.uml");

Но как мне получить доступ к локальным ресурсам относительно?

URI.createFileURI("jar:file:/%ECLIPSE_HOME%/plugins/SMartGen.jar!StarSchema.profile.uml");

не работает таким образом ....

Рад за каждый ответ.

LG Мартин

Ответы [ 2 ]

3 голосов
/ 07 июня 2011

Используйте FileLocator .

Пример:

URL iconUrl = FileLocator.find(Platform.getBundle("myBundle"), new Path("icons/someIcon.png"), null);

Будет получен URL-адрес файла "someIcon.png", который находится в папке "icons" в комплекте "myBundle".

0 голосов
/ 08 июня 2011

Для получения ресурса из затмения вы можете использовать org.osgi.framework.Bundle.getEntry(String). Это возвращает стандарт java.net.URL, который также можно использовать для получения InputStream для потребления. Его преимущество заключается в том, что он не заботится о том, находится ли ваш плагин в форме каталога, jar-файла или в вашем рабочем пространстве.

Bundle bundle = FrameworkUtil.getBundle(MyClass.class);
URL url = bundle.getEntry("StarSchema.profile.uml");

URL также имеет удобный метод toURI().

...