我有一个使用探戈图标的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')。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top