Ответ 1
Нет, вы не можете перечислять ресурсы в пакете, потому что JVM просто не знает, какие ресурсы находятся в каком пакете. См. этот вопрос.
Давайте предположим, что мои классы загружаются из сжатого файла .war или загружаются в другом месте, как я могу открыть все ресурсы в данном пакете? Перечисление файлов на самом деле не будет работать, так как это военный файл. Скорее всего, это будет связано с использованием текущего загрузчика классов?
Есть ли там библиотека, которая делает что-то подобное? Googling выявил только некоторые хаки с листинговыми файлами.
Нет, вы не можете перечислять ресурсы в пакете, потому что JVM просто не знает, какие ресурсы находятся в каком пакете. См. этот вопрос.
Да. Вы можете использовать ClassLoader.getResources("")
;
Или вы можете использовать API хорька:
https://www.ohloh.net/p/pureperfect-ferret
Этот API позволяет сканировать путь класса, а также произвольные архивы и каталоги, используя шаблон посетителя.
Spring Framework предлагает класс под названием PathMatchingResourcePatternResolver
. С помощью этого класса вы можете указать пути стиля Ant с помощью подстановочных знаков, и он найдет для вас соответствующие ресурсы (поиск по папкам и банкам в пути к классам).
Я делаю это:
- перед упаковкой ls myResources/*.ext > myResources/list.txt
- сначала просто прочитайте файл