Java:来自class.getResource(…)的NullPointerException
我正在编写一个小应用程序,当我尝试创建一个ImageIcon时,我总是遇到exception。 这个例外代码引起了exception:
prayerLevel.setIcon(new ImageIcon(getClass().getResource("/icons/icon_prayer.png")));
现在在我的程序中,文件夹/ icons /确实存在。 我不知道它是否有所不同但是类文件在一个包中,其中icons文件夹在项目文件夹中(当你看到bin和src文件夹时)。
我已经四处寻找,我找不到可以帮助我解决问题的解决方案。 也许你们中的任何人都可以帮忙吗?
编辑:有人要求我的文件夹层次结构:
我知道类文件与图标不在同一文件夹中,但是我已经创建了应用程序,我必须从不同的文件夹加载文件并执行/文件夹/始终用于工作。
编辑2:
System.out.println(getClass().getResource("/icons/icon_prayer.png") == null);
打印真实。
我相信NPE是从ImageIcon
构造函数抛出的,因为getResource
返回null
。
请尝试以下方法:
getClass().getClassLoader().getResource("/icons/icon_prayer.png")
要么:
ClassLoader.getSystemResource("/icons/icon_prayer.png")
据我所知, getResource()
将查看已知资源的位置,换句话说,如果文件夹/icons/
不被视为资源文件夹,它将不会像您预期的那样。 据我所知,有两种解决方法:
1)将icons文件夹设置为应用程序的资源,然后你可以使用getResource()
例如URL css_url = getClass().getResource("/resource/style.css");
有关此选项的更多信息,请参阅http://sofzh.miximages.com/java/ middle.gif”,“一个漂亮但毫无意义的splat”);
希望这有帮助,祝你好运!
我将我的音乐,图像等添加到添加到构建路径的文件夹中。 然后我就用了
URL url="CurrentClass".class.getClassLoader().getResource("media file name not the path"); setIconImage(new ImageIcon(url.getPath()).getImage());
设置图像图标。
旧线程,但因为我刚刚碰到类似的问题…
我正在使用Eclipse,并使用系统命令( cp
)将文件复制到“resources”文件夹。 但是,eclipse抛出了NullPointerException
因为我没有刷新“resources”文件夹。 所以文件在那里,但Eclipse没有看到它。
所以在Eclipse中:“Package Explorer” – >“resources” – >鼠标右键单击 – >刷新。 这为我修好了。
唯一可以在这行代码中抛出NullPointerException
东西就是第一个.
,这意味着prayerLevel
为null。
- 数据库连接?
- 如何编译Hive UDF
- CLASSPATH中的空格
- Java / Eclipse:如何为JUnit测试配置Run Configuration的Classpath?
- ColdFusion:关于使用自定义“自己编写的”Java类
- 帮助ant文件 – Java任务的类路径
- java.lang.ClassNotFoundException / NoClassDefFoundError for com / fasterxml / jackson / databind / ObjectMapper with Maven
- ClassNotFoundException在修改后的SimpleShortestPathsVertex上运行GiraphRunner
- 了解Eclipse类路径声明