线程“Thread-2”中的异常java.lang.IllegalArgumentException:input == null

时间:2014-04-15 03:16:27

标签: java eclipse input path jgrasp

Exception in thread "Thread-2" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
at com.game.src.gfx.BufferedImageLoader.loadImage(BufferedImageLoader.java:15)
at com.game.src.main.Game.init(Game.java:43)
at com.game.src.main.Game.run(Game.java:81)
at java.lang.Thread.run(Unknown Source)

这是我的完整错误,我有一个非常基本但正在运行的游戏,我在Eclipse中创建。我试图在JGrasp中打开Game.java文件,看看我是否可以运行它,因为这是我们在学校使用的程序。当我尝试在JGrasp中运行时,它没有工作,所以我尝试再次在eclipse中运行它,并且出现了这个错误。这是我的Game.java的一部分,它调用BufferedImageLoader,这是错误的来源。

public void init() throws IOException{
    requestFocus();
    BufferedImageLoader loader = new BufferedImageLoader();

    spriteSheet = loader.loadImage("SpriteSheet.png");  

    SpriteSheet ss = new SpriteSheet(spriteSheet);
    im = new ImageManager(ss);

    p = new Player(5 * TILE, 10 * TILE, im, im.playeru);

    this.addKeyListener(p);
    BufferedImage limage = loader.loadImage("/level1.png");
    l1 = new Level(limage);


}

我的游戏类创建一个名为loader的新BufferedImageLoader实例,并将构造函数设置为(" SpriteSheet.png"),它是eclipse中我的BufferedImageLoader类的构造函数。

BufferedImageLoader类如下

package com.game.src.gfx;

import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;

public class BufferedImageLoader {

private BufferedImage image;


public BufferedImage loadImage(String path) throws IOException{

    image = ImageIO.read(getClass().getResource(path));
    return image;


}


}

我不知道为什么它停止工作,我搜索了相当数量,如果你能帮助我,那将是非常感激的! 如果您需要更多代码或信息,请不要犹豫, 谢谢!

1 个答案:

答案 0 :(得分:2)

您的图片文件(“SpriteSheet.png”)应与BufferedImageLoader类位于同一个包中。

查看有关如何指定路径的文档 - public URL getResource(String name)