Существует два способа получения ресурса:
- Путем абсолютный , но это не очень хороший способ, потому что абсолютные пути ненадежны, но это хорошодля «дымового» тестирования
- по относительному пути, и снова есть два пути.
В обоих случаях вы можете использовать getClass().getResource(path)
конструкцию.
Относительные пути:
- Если ваш ресурс находится в корневом каталоге ресурса dir, ваш путь должен начинаться с
/
:
"/etc.txt"
Где файл и т. Д. Хранятся в каталоге ресурсов.
Для вашего примера на картинке ваш путь будет: /queries/storedQueries.txt
Если ваши ресурсы находятся в каталоге ресурсов, но в плоских каталогах, так же, как пакеты для класса, который вы вызываете
.getResource(path)
, например:
resources/com/pe/queries/etc.txt
Ваш путьне должен включать начальный '/': getClass().getResource("com/pe/queries/etc.txt")
Это потому, что когда ваша система сборки (ваш maven) будет собирать проект, он помещает ваш ресурс в 'root' jar, если вы храните его в root
изкаталог ресурсов или, если вы храните как resources/com/pe/queries/etc.txt
, создаете внутри jar com/pe/queries/
и помещаете его внутрь.
Извините за мой английский, надеюсь, я помогу вам понять, как он работает.
PS Я написал эту статью, она на русском языке, но вы можете перевести ее с помощью Google-transate (я пытался, и это понятно), есть больше примеров и объяснений внутри.
Статья о ресурсах на русском языке
Удачи!