题
我有一个使用探戈图标的Java / Maven项目,所以我正在使用以下依赖项:
<dependency>
<groupId>org.freedesktop.tango</groupId>
<artifactId>tango-icon-theme</artifactId>
<version>0.8.90</version>
</dependency>
.
和以下代码,在我将proyect移动到maven之前,它会正常工作:
imageIcon = new ImageIcon(this.getClass().getResource(org/freedesktop/tango/22x22/actions/address-book-new.png));
.
但是,由于某种原因,它现在会导致NullPointerException。
生成的jar不包含图像,也不包含以任何方式引用它们,但其他罐子中的类是。
我已经调查了很多,但我发现大多数人都用他们的来源捆绑他们的图像。这不是我的情况。
我需要做些什么来参考和/或包装这些图像的封装? 如何获得Maven来构建独立的可抵押罐(这是一个挥杆应用程序)。
解决方案
如果在路径上添加斜杠:
ImageIcon imageIcon = new ImageIcon(this.getClass().getResource("/org/freedesktop/tango/22x22/actions/address-book-new.png"));
.
从 API :
在委派之前,从中构建绝对资源名称 使用此算法给定资源名称:
如果名称以'/'开头('/'('\ u002f'),那么绝对名称 资源是“/”后面的名称的一部分。除此以外, 绝对名称是以下形式的:
modified_package_name / name其中modified_package_name是 将此对象的名称与“/”替换为“。”('\ u002e')。
不隶属于 StackOverflow