我刚刚在Java中发现了一个错误(使用Eclipse)。我想将资源文件夹中的图像加载到应用程序中。使用以下几行:
URL url = this.getClass().getClassLoader().getResource("/resources/images/icon.png");
BufferedImage i = ImageIO.read(url);
但这导致java.lang.IllegalArgumentException: input == null!
例外。
我的文件夹结构是:
如何访问此图片?非常感谢你!
答案 0 :(得分:1)
getResource()
如果无法在类路径中找到资源,则会返回null
。
要使用getResource()
,您需要资源在类路径上 。资源目录不在类路径上。在Eclipse中,您可以将resources
文件夹添加到类路径中。或者在images
下创建一个新的包srcServer
,并将该图标从resources
移出srcServer\images
以及您的源代码。
另一种方法是使用File
加载图像,而不是将其作为类路径资源加载。
答案 1 :(得分:0)
我相信它找不到资源的原因是由于你的语法。 getClass().getClassLoader().getResource()
无需带领' /'并始终从类路径的根开始。 getClassLoader()。getResource()始终是绝对路径,而getClass()。getResource()是相对路径。
只需使用:
URL url = this.getClass().getResource("/images/icon.png");