Не удается загрузить изображения в Java Swing при запуске из .jar-файла - PullRequest
2 голосов
/ 28 мая 2010

Я могу без проблем запустить свое приложение Java Swing из Eclipse. Но когда я запускаю его из .jar-файла, изображения не загружаются.

Я загружаю свои изображения с:

setIconImage(Toolkit.getDefaultToolkit().
getImage(getClass().getResource("../images/logo.png")));

Как я могу загрузить изображения, чтобы они работали, даже когда я запускаю из .jar-файла?

Изображения находятся в том же Jar-файле, в пакете com.example.images, а класс, в котором они используются, - com.example.gui.dialogs

Ответы [ 2 ]

5 голосов
/ 28 мая 2010

Используйте абсолютный путь внутри своей банки. Если вы этого не знаете, попробуйте открыть JAR с помощью zip-программы, например, 7zip. Затем используйте абсолютный путь:

getClass().getResource("/com/examples/images/logo.png")

Это явно работает только тогда, когда ваше изображение находится в банке. Если это не так, но в вашем classpath, это тоже должно быть хорошо.

1 голос
/ 28 мая 2010

Изображения должны быть также упакованы в файл jar. На самом деле, я не уверен на 100%, что другого решения нет, но, по крайней мере, я сделал так, когда экспериментировал с той же проблемой.

Затем jar-файл был добавлен в путь к классам, и я получаю доступ к ресурсам изображений следующим образом:

getResource("images/logo.png");

...