Я долго ломал голову над этим и не могу найти решение этой проблемы:
У меня есть приложение Eclipse RCP, которое использует пользовательскую библиотеку, упакованную в виде jar. Из плагина я вызываю метод в банке.
В рамках этого метода я «получаю» ресурс, используя this.class.getResource(relPath)
, тогда как relPath
- это жестко заданный относительный путь к нужному мне файлу. Это возвращает мне URL
, который я могу использовать для построения File
.
Теперь это работает отлично, если я вызываю не этот метод из плагина, а из простой Java-программы.
Разница: загрузчик классов Eclipse RCP возвращает URL
протокола bundleresource://
, который не поддерживается File
, тогда как при запуске простой Java-программы возвращается file://
-URL, что вполне нормально для построения File
.
Мне известен FileLocator
-класс Eclipse SDK (который разрешает URL-адреса bundleresource-URL-адресов к URL-адресам файлов), но я не могу использовать его в библиотеке, поскольку не хочу связывать его с платформой Eclipse RCP - должна быть возможность использовать эту библиотеку также из источников, не относящихся к Eclipse-RCP.
Кто-нибудь знает, как я могу загрузить этот ресурс из относительного пути таким образом, чтобы он работал как при вызове метода из Eclipse RCP-Plugin, так и из любого другого клиента?
Мне нужно создать File
в каталоге этого относительного пути для поиска файлов внутри. Я полностью застрял на этом ...
ОБНОВЛЕНИЕ : Если есть возможность, кроме использования File # list () , получить содержимое каталога, это уже помогло бы мне.
Любые советы приветствуются,