线程NullPointerException如果在netbeans外部运行

时间:2013-08-26 20:29:51

标签: java

我创建了一个从包中获取图像的对象,然后在屏幕上绘制它。当我在netbeans中运行代码时,它工作正常。在netbeans之外,我得到一个空指针异常错误。 这是我的代码。我使用println部分来查看“frog”是否等于null。当run说它等于“/images/upFrogStill.png”时所以我不确定为什么空指针异常。 错误发生在“ImageIcon ii ...”行。

public class Frog extends Sprite implements Commons {

String frog = "/images/upFrogStill.png";

 public Frog() {
 System.out.println("frog = " + frog);
        ImageIcon ii = new ImageIcon(this.getClass().getResource(frog));
        image = ii.getImage();
        width = image.getWidth(null);
        height = image.getHeight(null);
        resetState();

}
  void resetState() {
     if(frog != null){
     frog = "/images/upFrogStill.png";
    x = 185;
    y = 397;
}}
}

1 个答案:

答案 0 :(得分:4)

有很高的可能性

ImageIcon ii = new ImageIcon(this.getClass().getResource(frog));正在返回null,因为无法找到资源。

如果您在netbeans之外运行,请确保在类路径中包含该文件

  

ClassLoader.getResource is "absolute";

     

Class.getResource是相对于类的包的,除非你    在前面加上'/'。

希望这有帮助。