2013-02-13 5 views
-6

У меня проблема с загрузкой изображений. Запуск приложения после компиляции с использованием Java Run в командной строке (Run - это основной класс), не генерирует ошибки, загружает изображения, но после упаковки в jar-файл ему не удалось загрузить изображение. При упаковке классов я упаковываю источник изображения вместе с его классами.Я не могу загрузить изображения

Это, как я загрузить изображения:

ImageIcon icon = new ImageIcon(getClass().getResource("resources/images/button6.gif")); 

Классы и папку, содержащую изображения находятся в том же каталоге.

+2

Ваш замок заблокирован ... – wrm

+0

Вы даже потрудились найти: http://stackoverflow.com/questions/1424547/image-not-loading?rq=1, http://stackoverflow.com/questions/4675617/my-jar-file-wont-load-images? rq = 1, http://stackoverflow.com/questions/4971587/loading-images-from-a-jar-file?rq=1 –

+0

Я пробовал это, это не сработало. – Cocest

ответ

0

Упаковка в JAR отличается.

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

+0

Я попробую. – Cocest

0

Try:

ImageIcon icon = new ImageIcon(MyClass.class.getResource("/resources/images/button6.gif")); 

Причина:

  • Относительные пути начинаются в пакете класса, но вы, вероятно, хотите, чтобы начать на корневом уровне Jar (предполагается, что «ресурсы» является каталог верхнего уровня в JAR)

http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getResource%28java.lang.String%29

+0

Спасибо, Пуче, я попробую. – Cocest

+0

Puce, я попробую пример, что он не сработал. – Cocest

+0

Если вы открываете банку (например, с помощью zip-инструмента или распаковываете банку с помощью инструмента jar), как это выглядит? Каков путь к button6.gif? Является ли gif частью банки? – Puce

-1

Образ, который я пытался загрузить, был gif-образным форматом, из которого расширение имени файла gif было в верхнем регистре (I.e. .GIF). Я изменил расширение изображения на нижний регистр, и это решило проблему.

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