Java getClass().getResource("file")导致NullPointerException

kap*_*ffy 15 java nullpointerexception embedded-resource imageicon

我正在关注zetcode 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)
Run Code Online (Sandbox Code Playgroud)

我实际上只是复制并粘贴代码以查看它是如何工作的.它们也在合适的包装中; 但是当我尝试运行它时,我总是会遇到这个错误.

Boz*_*zho 12

图像应与编译的类位于同一个包(OS术语中的文件夹)中.检查是否有两个.class.png在同一文件夹.如果没有,您可以在getResource(..)开头使用类路径相对路径/


Har*_*Joy 7

试试这个:

ImageIcon iid = new ImageIcon(this.getClass()
                  .getClassLoader().getResource("ball.png"));
ball = iid.getImage();
Run Code Online (Sandbox Code Playgroud)

确保image与java文件位于同一文件夹中.


小智 5

尝试使用System.out.println(System.getProperty("java.class.path"));查找.class文件的位置并将图像放在此文件夹中.


use*_*421 -2

找不到如此命名的资源。它需要与您调用它的 .class 文件位于同一目录中。请参阅 Javadoc。