Решение найдено: Ресурсы подключаемые в jar должны лежать в папке с исходниками! Или в любой папке с подключаемыми исходниками. new File() не предназначен для обращения к файлам в Main.jar после сборки проекта! Использовать:
getClass().getResource()
Допустим у нас есть картинка в src/image/image.png Где src это пфпка с исходниками откуда собирается проект. Обращение к нему из объекта будет:
Когда запускается программа из нетбинс "F6" или кнопка "Запустить проект", то относительный путь для File() предназначеного только для работы с файлами файловой системы устанавливается относительно корня папки проекта: ProjectMy/ src/ - папка с исходниками image/ - папка ресурсов dist/ProjectMy.jar - компилированый файл
Ошибки нет. Но папка image не добавляется как ресурс в jar.
Но когда запускаешь из dist закрыв нетбинс относительный путь идёт от папки dist где нет никакой папки image в файловой системе. Возникает ошибка.
А ещё можно в настройках проекта добавить любую папку, чтобы она считалась папкой исходников. proj/ - image/ - icon.png - src/ - Main.java Если добавить image/, тогда при сборке получится: proj.jar/ - icon.png - Main.class
Windows:
cd NetBeansProjects/proj
tree