Путь к ресурсам Java внутри скомпилированного файла jar

#java #jar #resources

Вопрос:

У меня проблема с загрузкой изображений с помощью getClass().getResource(). В принципе, он ничего не загружает, потому что мои ресурсы находятся в файле jar..? Я думаю, проблема в том, что путь к кодеру ресурсов как-то неверен, потому что getClass.getResource ищет ресурсы в build/libs/COMPILED_JAR/pathtoresourcefolder, когда он должен искать их в build/resources (я думаю). Так что, похоже, путь как-то неправильный, но я понятия не имею, почему.

Что я сделал не так?

Моя структура проекта такова:

src/main/java -> вот мои классы

src/основные/ресурсы -> вот мои ресурсы

Примечание: Это, вероятно, дубликат, но я не смог найти ответ, и я искал в течение часа…

Комментарии:

1. На самом деле нет смысла беспокоиться о чем-либо, кроме того, что находится в банке. Пожалуйста, опубликуйте результаты jar tf thejar.jar

2. @g00se в нем перечислены все файлы в моем проекте, включены нужные мне ресурсы. Я не думаю, что что-то пропало. Интересно , что он поместил все ресурсы и классы в одну папку, так ли это должно быть? pastebin.com/QHjcZmH0

3. getResourceAsStream("/com/hhuebner/autogp/symbols/test.png");

4. @g00se Спасибо, это сработало для одного изображения, но я также хочу позже динамически загрузить кучу изображений (все файлы png, которые находятся в определенной папке). Как бы я это сделал? С помощью входного потока я не могу отфильтровать файл .png и не могу перечислить файлы каталога

5. Вы читаете их как ресурсы, поэтому вы разместите эти ресурсы там, где они есть. Поэтому вы будете знать их имена. Если вам нужно загрузить произвольные изображения, вам придется рассматривать их как файлы, а не как ресурсы