Интеллигент ресурсов не в встроенном артефакте

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

URL url = ClassLoader.getSystemResource("./some_font.ttf");

Font font = Font.createFont(Font.TRUETYPE_FONT, url.openStream());

Хотя это работает, когда я запускаю программу в IDE, когда запускается экспортированный jar, он не может загрузить шрифт.

2 ответа

Вы можете создать свои собственные артефакты в структуре проекта:введите описание изображения здесь

Там вы можете добавить содержимое каталога папки ресурсов. Нажмите зеленый плюс и перейдите к своей папке и добавьте ее. Затем вы можете нажать build-> build artifacts -> build. В моем случае баночка создается в папке./out/artifacts.

Intellij рассматривает папки, помеченные как "ресурсы", как дополнительные каталоги пути к классам, которые могут быть обнаружены его собственным автозаполнением или в вашем случае функцией run / debug. Попробуйте щелкнуть правой кнопкой мыши эту папку и выберите "Пометить каталог как"> "Снять пометку с корня ресурсов", чтобы проверить это предположение. Если он перестал работать, вам нужно предоставить более надежный путь, учитывая, где этот файл находится внутри вашего результирующего jar-файла.

Другие вопросы по тегам