有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java getClass()。getResource(…)找不到我的图像

我运行我的应用程序,得到以下异常

Exception in thread "main" java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(ImageIcon.java:167)
    at view.View.getBookmarkPanel(View.java:162)
    ...

错误的来源在这里

JButton addButton = new JButton(new ImageIcon(this.getClass().getResource("img/plus.png")));

我理解异常意味着它无法通过提供的目录分配请求的映像,并声明映像不存在。这让我困惑,因为图像确实存在

My Documents\workspace\PersonalProjectUpdate\src\main\resources\img\plus.png

在我将文件组织到包中之前,代码一直运行良好,即使在我取消了此更改后,错误仍然会发生,但是它不应影响应用程序如何从资源文件夹分配文件

为什么要这样做,有人能帮我吗


共 (1) 个答案

  1. # 1 楼答案

    ^{}将传递给它的路径视为相对于类的包,因此在您的例子中,它正在寻找src\main\resources\view\img\plus.png

    要解决此问题,请添加一个前导斜杠以指示路径为绝对路径:

    JButton addButton = new JButton(new ImageIcon(this.getClass().getResource("/img/plus.png")));