我得到一个"未知来源"异常上传缓冲图像

时间:2016-12-30 15:56:42

标签: java image-processing

上传图片我使用此代码

public static BufferedImage getSprite(String file,Object obj)
{
    BufferedImage sprite = null;
    try
    {
        sprite=ImageIO.read(obj.getClass().getResource(file));
    }
    catch(Exception e)
    {
        System.out.println("File doesn't exist");
    }
    return sprite;
}

然后

public class Grass

{

BufferedImage grass=SpriteHandler.getSprite("/Resources/grass_tile.gif",this);



public void render(Graphics g)
{

    g.drawImage(grass, 0, 0, null);
}

}

当我使用Grass grass = new Grass()将其添加到Main类时 它捕获Exception in thread "Thread-2" java.lang.NullPointerException at Game.render(Game.java:99) at Game.run(Game.java:75) at java.lang.Thread.run(Unknown Source)

我尝试了一切,只有当我把#34; getSprite"内部的方法"渲染(图形g)",但这样程序减速

1 个答案:

答案 0 :(得分:0)

未知来源

这是因为你的jar,其中一个JRE不包含该类的源代码。 JVM不知道抛出异常的精确行。如果.java在jar中,则stacktrace将包含精确的行。更改完整的JDK可能会解决此问题。

的NullPointerException

render方法有问题。尝试调试方法中使用的所有变量,以检查是否所有变量都已实例化。

public void render(Graphics g){
    g.drawImage(grass, 0, 0, null);
}

检查Javadoc theres与您传递的参数没有关系,grass可能是null,方法无效,第四个参数是可选的。所以,我相信你的Graphics g是空的。