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