2008-10-09 2 views
17

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

Есть ли там библиотека, которая делает что-то подобное? Googling выявил только некоторые хаки с листинговыми файлами.

ответ

5

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

6

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

21

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

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

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

+0

+1 Правильное решение должно работать для любого загрузчика классов и веб-контейнеров – 2013-05-02 11:56:47

3

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

Смежные вопросы