Java исключая изображения при создании файла jar - PullRequest
0 голосов
/ 21 февраля 2020

Я сделал проект с GUI в Netbeans. У GUI есть метка GIFL2 , которая загружает изображение при нажатии кнопки через

GIFL2.setText("");
GIFL2.setIcon(new ImageIcon("src/torrehanoirecursion/" + path));

Это прекрасно работает в Netbeans, когда я запускаю код внутри. Загружает изображение успешно .

Проблема в том, что когда я собираю проект и открываю файл jar, изображения не загружаются. Сначала я думал, что это потому, что изображения были внутри папки img, которая, в свою очередь, была внутри sr c. Таким образом, относительный путь к папке был src / torrehanoirecursion / img

Однако я переместил все изображения на сам sr c без папки, потому что я прочитал это java может исключать их за то, что они не являются частью sr c, но все равно не работает. Никаких ошибок или чего-то еще, он просто не загружает их в банку.

Я пошел в проект> свойства> упаковка. Проверено «Копирование зависимых библиотек», «Сборка jar при компиляции», «Сжатие jar» не проверено, а «исключить из jar» полностью пусто.

Любые идеи относительно того, что может быть происходит?

1 Ответ

0 голосов
/ 21 февраля 2020

Если вы используете Maven , вы должны поместить все ресурсы, которые вы хотите включить, в целевой jar-каталог в каталоге src/main/resources вашего проекта:

pom.xml
src/main/java
src/main/java/resources
src/main/java/resources/img1

Вы также можете включать файлы в разные каталоги как например src/other-resources. В этом случае на вашем пом. xml вы должны установить эти пути в разделе build следующим образом:

<build>
    <resources>
        <resource>
            <directory>src/other-resources</directory>
        </resource>
    </resources>
</build>

Подробнее см. В Плагин ресурсов Maven Документация : https://maven.apache.org/plugins/maven-resources-plugin/examples/resource-directory.html


Обновление: решение с проектом не Maven через NetBeans

Как вы указали, ваш проект не управляется с Maven я сообщил о шагах, которые можно было бы решить с помощью Netbeans.

  1. Создайте каталог resources на root пути вашего проекта
  2. Откройте свойства вашего проекта в IDE Netbeans и выберите Sources в разделе категорий
  3. Добавьте папку resources в Папка с исходными файлами section

Тогда целевой jar должен содержать все файлы в resources каталог по classpath.


Обновление: вручную вводить ресурсы в целевой jar

В конце вы также можете добавить весь каталог src/main/java/resources в свою цель jar вручную с помощью следующей команды af Для сборки (вы должны автоматизировать это как минимум с помощью скрипта bash или заданной задачи c на Netbeans):

cd src/main/java/
jar uf project.jar resources
...