使用Eclipse IDE。这一行:
getClass().getResource("/res/bitmaps/image.png");
返回null
。我在项目的根目录中创建了res
文件夹。
感兴趣的代码是:
bImage = ImageIO.read(getClass().getResource("/res/bitmaps/image.png"));
并抛出异常:
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(ImageIO.java:1378)
at com.example.game.resource.Resources._loadImage(Resources.java:31)
at com.example.game.GameComponent.<init>(GameComponent.java:19)
at com.example.game.GameFrame.<init>(GameFrame.java:8)
at com.example.game.GameFrame.main(GameFrame.java:13)
任何帮助?
答案 0 :(得分:3)
ImageIO.read(getClass().getResourceAsStream("res/drawable/image.png"));
确保res文件夹位于类路径中,使用项目属性验证&gt; Java构建路径&gt;来源标签。如果不在课程路径中,可以通过右侧的添加文件夹.. 按钮添加。
答案 1 :(得分:1)
您说资源位于“项目的根目录”中 - 是您构建路径中的那个文件夹吗?您需要在构建路径中拥有它,以便Eclipse将其复制到输出目录(默认情况下为bin
)。
答案 2 :(得分:1)
getClass().getResource("/res/drawable/image.png");
您应该提供 image.png 存在的文件夹的路径
答案 3 :(得分:0)
如果名称以'/'('\ u002f')开头,则资源的绝对名称是'/'后面的名称部分。
否则,绝对名称的格式如下: package_name / name
其中package_name是此对象的包名称,其中'/'替换为'。' ( '\ u002e')。