Могу ли я перечислить ресурсы в данном пакете? - PullRequest
18 голосов
/ 09 октября 2008

Предположим, что мои классы загружены из сжатого файла .war или загружены в другом месте, Как я могу обнаружить все ресурсы в данном пакете? Перечисление файлов на самом деле не будет работать, так как это файл войны. Скорее всего, это будет связано с использованием текущего загрузчика классов?

Есть ли библиотека, которая делает что-то подобное? Поиск в Google показал только несколько взломов со списком файлов.

Ответы [ 4 ]

22 голосов
/ 18 августа 2012

Да. Вы можете использовать ClassLoader.getResources("");

Или вы можете использовать API хорька:
https://www.ohloh.net/p/pureperfect-ferret

Этот API позволяет сканировать путь к классам, а также произвольные архивы и каталоги, используя шаблон Visitor.

7 голосов
/ 09 октября 2008

Нет, вы не можете перечислить ресурсы в пакете, потому что JVM просто не знает, какие ресурсы в каком пакете. См этот вопрос .

6 голосов
/ 13 июля 2010

Spring Framework предлагает класс с именем PathMatchingResourcePatternResolver. С помощью этого класса вы можете задавать пути в стиле Ant с подстановочными знаками, и он найдет для вас соответствующие ресурсы (поиск по папкам и банкам на пути к классам).

3 голосов
/ 04 октября 2014

Я делаю это: - до упаковки ls myResources/*.ext > myResources/list.txt - сначала просто прочитайте файл

...