Java游戏开发报错:IllegalArgumentException(input==null)求助(NetBeans)
解决NetBeans中Java游戏图片加载的
input == null!错误 你遇到的错误是:
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
你的代码如下:
public void getPlayerImage(){ try { System.out.println("Somethings wrong if u dont see gay"); up1 = ImageIO.read(getClass().getResourceAsStream("/player/boy_up_1.png")); up2 = ImageIO.read(getClass().getResourceAsStream("/player/boy_up_2.png")); down1 = ImageIO.read(getClass().getResourceAsStream("/player/boy_down_1.png")); down2 = ImageIO.read(getClass().getResourceAsStream("/player/boy_down_2.png")); left1 = ImageIO.read(getClass().getResourceAsStream("/player/boy_left_1.png")); left2 = ImageIO.read(getClass().getResourceAsStream("/player/boy_left_2.png")); right1 = ImageIO.read(getClass().getResourceAsStream("/player/boy_right_1.png")); right2 = ImageIO.read(getClass().getResourceAsStream("/player/boy_right_2.png")); System.out.println("Gay"); }catch(IOException e) { e.printStackTrace(); } }
这个错误的核心原因是getResourceAsStream()找不到指定的图片路径,返回null后导致ImageIO.read()抛出异常。下面分两种NetBeans项目类型给出配置步骤:
普通Java项目(非Maven)
- 打开NetBeans,展开你的项目,找到**源包(Source Packages)**节点
- 右键点击「源包」,选择「新建」→「文件夹」,命名为
player - 将所有
boy_*.png图片复制到这个player文件夹内 - 右键你的项目,选择「清理并构建」,确保资源文件被正确编译到类路径中
Maven项目
- 展开项目下的src/main/resources目录
- 右键
resources节点,新建名为player的文件夹 - 把所有图片文件复制到
player文件夹中 - 执行「清理并构建」,Maven会自动将
resources目录下的内容打包到类路径
额外调试技巧
如果还是报错,可以先打印资源路径验证是否存在:
URL resource = getClass().getResource("/player/boy_up_1.png"); System.out.println("资源路径:" + resource);
如果输出null,检查以下几点:
- 文件夹名称、图片文件名是否和代码中的完全一致(类路径区分大小写)
- 图片是否被正确复制到对应目录,没有遗漏
- 构建后是否在项目的
build/classes(普通项目)或target/classes(Maven项目)下能找到player文件夹和图片
内容的提问来源于stack exchange,提问作者Lukas Haberly
相关产品推荐
相关产品推荐

