Подтвердить что ты не робот

Как связать изображения в файле jar

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

Теперь я хотел знать, как мы можем представить эти файлы изображений конечному пользователю (например, мы представляем файл .jar). Спасибо заранее

4b9b3361

Ответ 1

Кажется, здесь есть два вопроса:

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

  • Как получить доступ к файлу изображения из баннера?

Этот ответ применяется к NetBeans 6.8 и адресует оба подзапроса.

Предположим, что у вас есть проект приложений Java на основе ant.

Вот представление "Файлы" проекта

JP
+ images
  + test.jpg
+ nbproject
+ src
  + jp
    + Main.java
+ test
+ build.xml
+ manifest.mf

Внутри вашего Main.java у вас есть такой код:

public static void main(String[] args) throws IOException {
    // find the file in the file system.. probably not a good idea
    File f = new File("images/test.jpg");
    System.out.println(f.getCanonicalPath()+" "+f.exists());

Когда вы запускаете этот проект из NB, вы получаете этот результат:

/export/home/vkraemer/NetBeansProjects/JavaApplication2/images/test.jpg true

Когда вы запускаете код, упакованный в банку, вы получаете что-то вроде этого:

bash-3.2$ pwd
/export/home/vkraemer/nbhg/web-main
bash-3.2$ java -jar /export/home/vkraemer/NetBeansProjects/JavaApplication2/dist/JavaApplication2.jar
/export/home/vkraemer/nbhg/web-main/images/test.txt false

Чтобы получить что-то лучше, когда выполняется jar, вам необходимо сделать следующее:

Добавить каталог изображений в качестве исходного корня для проекта.

Щелкните правой кнопкой мыши проект и выберите элемент "Свойства". Появится диалоговое окно.

Выберите "Источники" в списке, который находится в левой части диалогового окна. Это изменит содержимое панели в правой части диалогового окна.

Нажмите кнопку "Добавить папку...", которая появляется рядом с таблицей "Пакеты исходных пакетов". Появится FileChooser.

Используйте этот выбор для выбора папки изображений и нажмите кнопку OK. Запись для папки с изображениями будет добавлена ​​в таблицу.

Используйте кнопку "ОК" в диалоговом окне "Свойства проекта", чтобы принять изменения и отменить диалог.

Измените свой код, чтобы использовать Class.getResource().

public static void main(String[] args) throws IOException {
    // find the file in the file system.. probably not a good idea
    File f = new File("images/test.jpg");
    System.out.println(f.getCanonicalPath()+" "+f.exists());
    URL url = Main.class.getResource("/test.jpg");
    System.out.println(url);

Когда вы запускаете проект из среды IDE, вы должны увидеть что-то вроде этого:

/export/home/vkraemer/NetBeansProjects/JavaApplication2/images/test.jpg true
file:/export/home/vkraemer/NetBeansProjects/JavaApplication2/images/test.jpg

Когда вы запустите код, упакованный в банку, вы получите что-то вроде этого:

bash-3.2$ pwd
/export/home/vkraemer/nbhg/web-main
bash-3.2$ java -jar /export/home/vkraemer/NetBeansProjects/JavaApplication2/dist/JavaApplication2.jar
/export/home/vkraemer/nbhg/web-main/images/test.jpg false
jar:file:/export/home/vkraemer/NetBeansProjects/JavaApplication2/dist/JavaApplication2.jar!/test.jpg

После того, как вы получите URL-адрес файла test.jpg, вы можете использовать ImageIcon (URL) для создания значка

Ответ 2

Для проекта Maven в NetBeans 6.9 поместите свой файл в "Ресурсы" в папку "Другие источники" проекта.

И убедитесь, что вы не забыли ведущий "/"