【发布时间】:2016-11-11 17:25:46
【问题描述】:
我正在编写一个小型应用程序,当我尝试创建一个 ImageIcon 时,我总是遇到异常。异常是由这行代码引起的:
prayerLevel.setIcon(new ImageIcon(getClass().getResource("/icons/icon_prayer.png")));
现在在我的程序中,文件夹 /icons/ 确实存在。我不知道这是否有所不同,但类文件位于包中,而图标文件夹位于项目文件夹中(当您会看到 bin 和 src 文件夹时)。
我环顾四周,找不到可以帮助我解决问题的解决方案。也许你们中的任何人都可以提供帮助?
编辑:有人询问我的文件夹层次结构:
我知道类文件与图标不在同一个文件夹中,但我已经制作了一些应用程序,我必须从不同的文件夹加载文件并且 /folder/ 总是可以正常工作。
编辑2:
System.out.println(getClass().getResource("/icons/icon_prayer.png") == null);
打印为真。
【问题讨论】:
-
文件夹层次结构如何?当你说 /icons 文件夹存在时,它到底在哪里?
-
您可能应该包含相关的错误消息 - 特别是堆栈跟踪 - 因为这将告诉我们问题发生的确切位置。
-
我知道为什么我得到 NullPointer,但现在我不知道为什么 class.getResource( ... ) 为空。文件“icon_prayer.png”在文件夹“icons”中。
-
是应用程序运行时classpath上的icons文件夹吗?
-
NPE 不是来自
Class.getResource(),与您的标题相反。这是你没有检查结果造成的。