Помогите разобраться с ресурсами 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 шт):

Автор решения: Artem Berezovski
  1. Использовать абсолютный путь - "/Files"
    или
  2. Создать в каталоге resources пакет, в котором лежит класс и положить туда Files. Напр.: класс лежит в пакете some.package.name => такой же пакет создаём в resources и туда кладем Files: resources/some/package/name/Files/
    или
  3. Использовать getClassLoader() вместо getClass()
→ Ссылка