Java getClass().getResource(“file”) 导致 NullPointerException

我正在按照Snake Java游戏教程进行操作,并且总是收到此错误:

ImageIcon iid = new ImageIcon(this.getClass().getResource("ball.png"));
ball = iid.getImage();

Exception in thread "main" java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(Unknown Source)
    at snake2.Board.<init>(Board.java:52)
    at snake2.Snake.<init>(Snake.java:10)
    at snake2.Snake.main(Snake.java:22)

我实际上只是复制并粘贴了代码,看看它是如何工作的。它们也采用正确的包装;但是当我尝试运行它时,我总是以此错误结束。


答案 1

映像应与编译的类位于同一包(操作系统术语中的文件夹)中。检查您是否同时拥有两者并且位于同一文件夹中。如果不是,则可以在 中使用类路径相对路径,方法是从.class.pnggetResource(..)/


答案 2

试试这个:

ImageIcon iid = new ImageIcon(this.getClass()
                  .getClassLoader().getResource("ball.png"));
ball = iid.getImage();

确保图像与java文件位于同一文件夹中。


推荐