Java IllegalArgumentException输入==null
我正在尝试以Java IllegalArgumentException输入==null,java,image,embedded-resource,javax.imageio,illegalargumentexception,Java,Image,Embedded Resource,Javax.imageio,Illegalargumentexception,我正在尝试以InputStream格式读取图像。但由于某种原因,我总是得到一个IllegalArugmentException 这是我的密码: BufferedImage i = null; i = ImageIO.read(getClass().getResourceAsStream("/res/graphics" + path)); 基本上,名称为的资源不存在。类加载器定位资源的方式与名为res.graphics.whatever的类相同,当然还有更相关的whatever。因此,只需使用
InputStream
格式读取图像。但由于某种原因,我总是得到一个IllegalArugmentException
这是我的密码:
BufferedImage i = null;
i = ImageIO.read(getClass().getResourceAsStream("/res/graphics" + path));
基本上,名称为的资源不存在。类加载器定位资源的方式与名为
res.graphics.whatever的类相同,当然还有更相关的whatever。因此,只需使用相同的方法使类可访问,即可访问此资源。原因:
您的资源的计算结果为null
,这就是异常的原因
抛出:
IllegalArgumentException-如果输入为null
解决方案:
如果res/graphics/which
在根目录的类路径中,那么它将返回NOTNULL似乎“/res/graphics”+路径的计算结果不符合您的期望值
下面是如何使用buffereImage
public File myImg = new File("someImage.png");
BufferedImage in = ImageIO.read(myImg);
//Just an example
BufferedImage newImage = new BufferedImage(in.getWidth(), in.getHeight(), BufferedImage.TYPE_INT_ARGB);
“/res/graphics”+path
的计算结果是什么?您能确保资源路径可访问吗?您确定您的程序能够读取该文件吗?请尝试将getresourceastream
更改为getResource
。它们计算路径的方式是不同的。@AndrewThompson API文档说它们是相同的,并且它们都委托给类加载器。这可能是一个错误。文件
不起作用。