Как загрузить значок с ресурса в Java? - PullRequest
7 голосов
/ 29 декабря 2011

Возможное дублирование (решено): https://stackoverflow.com/a/1133132/783469

У меня есть значки (jpg, png) для моего приложения, которое хранится в моем каталоге /var/tmp/gameXbox/src/image/<here>.Теперь, как я могу использовать их в приложении, не используя жесткую ссылку, а как ресурс?

Пример: не работает

IconForMyButton = ImageIO.read(new File(
                    ClassLoader.getSystemResourceAsStream("image/button1.png")
                  ));

enter image description here

Работает, когда я делаюс жесткой ссылкой:

IconForMyButton = ImageIO.read(new File(
                      "/var/tmp/gameXbox/src/image/button1.png"
                  ));

Ответы [ 3 ]

12 голосов
/ 29 декабря 2011

Загрузка ресурсов происходит в classpath относительно текущего пакета. Если /var/tmp/gameXbox/src/ находится в вашем пути к классам, то:

ImageIO.read( ClassLoader.getSystemResource( "image/button1.png" ) );

Однако обычно папка src имеет значение , а не , включенное в путь к классам IDE. Попробуйте добавить изображение в папку bin.

4 голосов
/ 29 декабря 2011

Я обычно использую class.getResource для операций такого типа:

YourClass.class.getResource("image/button1.png")

Я использую его для извлечения файла из архива JAR, но должен работать и для извлечения из ресурсов файловой системы.

0 голосов
/ 29 декабря 2011

Изображения попадают не в исходную папку, а в папку ресурсов. Исправьте вашу IDE и используйте Maven, и он будет работать с getResourceAsStream с текущим контекстным загрузчиком классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...