0 голосов
 
1327 просмотров
4.04.2017 / 23:31  Askalite

Netbeans не собирает ресурсы в jar файл

Нажимаю собрать и очистить - собирается jar. Пытаюсь открыть - выдаётся ошибка. Открваю rar архиватором - нужных файлов image/ нет.
5.04.2017 / 01:05  aNNiMON
image/ где лежит? Покажи структуру папок проекта.
Windows:
cd NetBeansProjects/proj
tree
Ответы
 
1 голос
 
# 5.04.2017 / 08:15  Askalite
Решение найдено:
Ресурсы подключаемые в jar должны лежать в папке с исходниками!
Или в любой папке с подключаемыми исходниками.
new File() не предназначен для обращения к файлам в Main.jar после сборки проекта!
Использовать:

  1. getClass().getResource()

Допустим у нас есть картинка в src/image/image.png
Где src это пфпка с исходниками откуда собирается проект.
Обращение к нему из объекта будет:

  1. BufferedImage image = ImageIO.read (getClass().getResource("/image/image.png"));

Когда запускается программа из нетбинс "F6" или кнопка "Запустить проект", то относительный путь для File() предназначеного только для работы с файлами файловой системы устанавливается относительно корня папки проекта:
ProjectMy/
           src/ - папка с исходниками
           image/ - папка ресурсов
           dist/ProjectMy.jar - компилированый файл

Ошибки нет. Но папка image не добавляется как ресурс в jar.

Но когда запускаешь из dist закрыв нетбинс относительный путь идёт от папки dist где нет никакой папки image в файловой системе. Возникает ошибка.
5.04.2017 / 09:07  aNNiMON
А ещё можно в настройках проекта добавить любую папку, чтобы она считалась папкой исходников.
proj/
  - image/
    - icon.png
  - src/
    - Main.java

Если добавить image/, тогда при сборке получится:
proj.jar/
  - icon.png
   - Main.class
Всего: 1

Реклама

Мы в соцсетях

tw tg yt gt