Используя ресурсы изображения в банке, используя Maven
Вопрос
У меня есть проект Java / Maven, который использует значки танго, поэтому я использую следующую зависимостью:
<dependency>
<groupId>org.freedesktop.tango</groupId>
<artifactId>tango-icon-theme</artifactId>
<version>0.8.90</version>
</dependency>
.
и следующий код, который будет работать хорошо, прежде чем я переместил проект в Maven:
imageIcon = new ImageIcon(this.getClass().getResource(org/freedesktop/tango/22x22/actions/address-book-new.png));
.
Тем не менее, теперь он приводит к тому, что nullpointerexception по какой-то причине. Сгенерированная банка не содержит изображений, ни ссылаться на них любым способом, но классы в других банках.
Я много исследовал, но я нашел большинство людей связывать своими изображениями своими источниками.Это не мое дело.
Что мне нужно сделать для Maven для ссылки и / или упаковать эти изображения свойства? Как я могу получить Maven построить автономную банку Runnable (это качание приложения).
Решение
Если вы добавите слезу до того, как путь он работает:
ImageIcon imageIcon = new ImageIcon(this.getClass().getResource("/org/freedesktop/tango/22x22/actions/address-book-new.png"));
.
из API :
перед делегацией, абсолютное имя ресурса построено из Учитывая имя ресурса, используя этот алгоритм:
Если имя начинается с A '/' ('\ u002f'), то абсолютное имя Ресурс - это часть имени, следующего за «/».Иначе, Абсолютное имя имеет следующую форму:
modified_package_name / имя, где modified_package_name Название пакета этого объекта с '/' замещенным для '.('\ u002e').