2015-04-23 2 views
0

У меня есть проект Java в Eclipse. Это структура папок:Экспортированный JAR-файл не показывает изображения

Eclipse folder structure

Код пакеты расположены в ИПВ, и все изображения в папке Рез.

изображения в коде ссылки, как это:

new ImageIcon("res/settings.gif"); 

Однако, после того, как я экспортировать проект в файл JAR (с помощью Экспорт -> Runnable JAR файла в Eclipse), и запустите файл JAR, нет отображаются изображения. Если я открываю файл JAR с WinRAR, это его структура:

JAR structure

Все изображения находятся в корневой папке и не могут быть ссылки правильно. Как правильно ссылаться на изображения так, чтобы они были видны как из Eclipse, так и из экспортированного JAR?

+0

Какие опции вы выбираете при экспорте Jar? – CKing

+0

Я думаю, потому что есть разница в том, что затмение работает как его основная папка и что баня рассматривает ее главную папку. В любом случае, возможно, используйте абсолютный путь. – jgr208

ответ

0

Я думаю, что я нашел исправление:

Replace это

new ImageIcon("res/settings.gif"); 

с

new ImageIcon(this.getClass().getResource("/settings.gif")); 

Работает как с Eclipse, так и с запускаемый JAR-файл.

1

Папка res/ не создана в файле .jar. Похоже, что местоположение ресурса не должно быть "res/settings.gif", но "/settings.gif".

Вы получаете его, чтобы работать, если вы отлаживаете его в Eclipse, потому что домашний каталог будет корнем вашего проекта, где папка res/ действительно существует.

0

Решение будет либо использовать абсолютный путь

new ImageIcon("/settings.gif"); 

или убедитесь, что папка res копируется в банку. Возможно, src/res или пометить папку как исходную папку в eclipse; Я сейчас в другой среде IDE.

Тогда было бы

new ImageIcon("/res/settings.gif"); 
+0

Вы уверены, что ImageIcon может загружать изображения из ресурсов? Использованный конструктор с одним аргументом String является AFAIK для указания имени файла, а не имени ресурса. – Robert

Смежные вопросы