Помогите разобраться с ресурсами Maven в файле jar
В общем проблема такая. Я уже прочитал про осуществление доступа к ресурсам при помощи конструкции getClass().getResource(). В моем случае это не помогает от слова совсем. В папке resources есть директория Files, в которой лежит несколько текстовых документов. Основная задача процедуры - просмотреть эту директорию, вернуть из нее массив файлов с помощью метода .listFiles() и в последствии все это дело заворачивается в список классов-оберток над File. В коде все это дело выглядит так:
File file = new File(getClass().getResource("Files").getFile());
if (!file.exists()){
file.mkdirs();
}
else {
File[] arrFiles = file.listFiles();
if (arrFiles!=null){
for (File k:arrFiles){
FilePacket ks = new FilePacket(k);
if(!clientFiles.contains(ks)){
clientFiles.add(ks);
}
}
}
else{
return;
}
}
Когда проект собирается, папка Files вместе с файлами помещается в корень jar. Так вот как в моем случае написать пути или поступить так, чтобы в jar файлы также сканировались и находились?
Ответы (1 шт):
- Использовать абсолютный путь - "/Files"
или - Создать в каталоге resources пакет, в котором лежит класс и положить туда Files. Напр.: класс лежит в пакете some.package.name => такой же пакет создаём в resources и туда кладем Files: resources/some/package/name/Files/
или - Использовать getClassLoader() вместо getClass()