Как включить все изображения в JAR-файл, используя Eclipse - PullRequest
8 голосов
/ 16 июня 2011

Я сделал java-приложение и связал все классы в jar-файл. Когда я запускаю проект из eclipse, мое приложение работает успешно. Но когда я пытаюсь запустить файл .jar, я не получаю значки, используемые моим приложением. В коде я получаю свои иконки из папки с изображениями в папке проекта Как я могу представить эти файлы изображений конечному пользователю при использовании jar?

Я загружаю изображение так:

 final public ImageIcon iReport=new ImageIcon("images/Report.png");

Я тоже пробовал

final public ImageIcon iquit=new ImageIcon(getClass().getResource("images/quit.png"));

и

final public ImageIcon iquit=new ImageIcon(getClass().getResource("/images/quit.png"));

Но это приводит к ошибке:

Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)

Ответы [ 4 ]

11 голосов
/ 16 июня 2011

Вам нужно получить его из classpath, а не из локальной файловой системы диска.

Если предположить, что images на самом деле является пакетом и этот пакет находится внутри того же JAR-файла, что и текущий класс, тосделать так:

final public ImageIcon iReport = 
    new ImageIcon(getClass().getResource("/images/Report.png"));
2 голосов
/ 16 июня 2011

Файлы в jar-файлах рассматриваются как «Ресурсы».вам нужно получить к ним доступ как к ресурсу classpath, обычные методы доступа к файлам там не работают.

Попробуйте это:

final public ImageIcon iReport = (new ImageIcon(getClass().getResource("images/Report.png")));
1 голос
/ 09 октября 2013

100% работ

final public ImageIcon iReport = new ImageIcon(getClass().getResource("/Report.png"));

Не забудьте про "/" на path для изображения.

1 голос
/ 27 июня 2013

Я знаю, что это задавали давно, но это может помочь другим с такой же проблемой, как я. Я уже использовал getClass (). GetResource ("..."), но ресурс не экспортировался с файлом .jar. Я решил проблему, обновив папку «Ресурсы» и каждую ее подпапку.

...