Установить изображение значка в файле Jar

следующий код отлично работает при работе на NetBeans.

this.getFrame().setIconImage(Toolkit.getDefaultToolkit().getImage("PlagiaLyzerIcon.png"));

однако, как только он был встроен в файл Jar, значок исчез.

кто-нибудь знает, в чем проблема? Я понял, что должен поместить изображение значка в корневой каталог, однако после компиляции в JAR значок исчез.

Спасибо за любую помощь ...

Привет всем, проблема была решена с помощью следующего кода

 this.getFrame().setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("plagialyzer/resources/PlagiaLyzerIcon.png")));

он работает после компиляции в jar файл.

5 ответов


использовать

this.getFrame().setIconImage(
new imageIcon(getClass().getClassLoader().getResource("PlagiaLyzerIcon.png"))
);

вместо.

Примечание:

эта строка работает только если картинки в корень jar-файла. Если нет, вы должны указать папку в строку:

getResource("yourfolder/PlagiaLyzerIcon.png")

это потому, что IDE Netbeans имеет другой путь к классам, чем при запуске автономного файла jar (без Ant).

предположим, что ваш проект Netbeans находится в месте /project/:

classpath-это: /project/build/classes/ и корень проекта /project/. Если ваши значки хранятся в: /project/myicons/, тогда они являются частью пути к классам, так как /project/ слишком. Но когда вы создаете свой проект, только файлы в /project/build/classes/ в конечном итоге окажется в jar-файле, эти файлы " build" от /projcet/src/.

устранение:

переместите значки в исходный пакет:/project/src/myicons/

или добавить /project/myicons/ папка для ваших источников (щелкните правой кнопкой мыши ваш проект- > свойства - > источники - > добавить папку там)


Спасибо большое...

вот код, который работает для меня!!!!

    BufferedImage image = null;

    try {
        image = ImageIO.read(getClass().getClassLoader().getResource("images/frame.png"));
    } catch (IOException e) {
        e.printStackTrace();
    }


    super.setIconImage(image);

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


используя NetBeans, как и я, просто поместите логотип (в моем случае mylogo.png) внутри src / directory в папке проекта. Убедитесь, что размер 32 x 32 пикселей для обеспечения наилучшего качества для значка. Я не мог установить .ICO изображения как мой значок JFrame, но .ПНГ работал хорошо. Расширяя JFrame, я напрямую устанавливаю значок jar с помощью:

Image getIcon()
{ return Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("mylogo.png")); }

setIconImage(getIcon());

после очистки и сборки jar значок файла jar по-прежнему не изменяется (по-прежнему значок jar по умолчанию), но при выполнении файла jar значок в строке заголовка и панель задач будет вашим пользовательским значком. Вы можете изменить значок файла jar, создав ярлыки и значок изменения для этого ярлыка. Лучшее разрешение для ярлыка - 512 x 512 пикселей .ico