当前位置: 首页 > 知识库问答 >
问题:

getClass()getResource返回null

淳于星宇
2023-03-14

当我尝试从eclipse中的资源目录加载一个图像时,我总是得到一个空指针异常(null pointer exception,NPE)。res文件夹位于项目目录中。这是我得到NPE的地方:

image.setIcon(new ImageIcon(new ImageIcon(this.getClass().getResource("res/bg.jpg")).getImage().getScaledInstance(image.getWidth(), image.getHeight(), Image.SCALE_SMOOTH)));

当我移除getClass().getReource()时,将返回图像:

image.setIcon(new ImageIcon(new ImageIcon(("res/bg1.jpg")).getImage().getScaledInstance(image.getWidth(), image.getHeight(), Image.SCALE_SMOOTH)));

当我打印res目录的URL时,我得到null:

URL resource = this.getClass().getResource("/");
        resource.getFile(); // print me somehwere

        URL resource1 = this.getClass().getResource("/res");
        resource.getFile(); // print me as well

        URL resource2 = this.getClass().getResource("res/bg2");
        resource.getFile(); // print me as well

        System.out.println("Reource1 : " + resource);
        System.out.println("Reource1 : " + resource1);
        System.out.println("Reource1 : " + resource2);

谢谢

共有1个答案

窦国源
2023-03-14

this.getClass().getResource(“res/bg.jpg”)替换为this.getClass().getResource(“../res/bg.jpg”)

由于this.getclass().getResource(“/”)返回文件://c://users/cmooney/eclipse-workspace/textsimplifier/bin/,因此您需要在目录结构中向上一级(目录),以便可以进入res目录。类似于cd../res当前位置的文件://c://users/cmooney/eclipse-workspace/textsimplifier/bin/

注意:在您所附的截图中,我看不到bg.jpg。确保此路径中有bg.jpg

 类似资料:
  • 问题内容: 线 失败于 我正在使用Eclipse,并且在bin文件夹下的导航视图中有文件gate_and.png,表明该文件位于构建路径中。 在包浏览器视图中,我有 和 我右键单击项目文件夹>构建路径>链接源以将images文件夹添加为源,再次执行此操作会提供一条确认消息,指出源中已存在图像。 我还尝试过将gate_and.png更改为images / gate_and.png和/images/g

  • 这是层次结构: Dz.BilaldJago.HomeKode.MainApp.java dz.bilaldjago.homekode.view.rootlayout.fxml 结果是一样的。有什么想法吗

  • 问题内容: 我有这个测试应用程序: 当我从Eclipse运行它时,出现错误: 类路径(来自.CLASSPATH文件) 在我的c:\ project \ src文件夹中,我只有Test.java文件和包含pacman.png的’assets’目录。 我在做什么错以及如何解决? 问题答案: 我会这样: “ /assets/pacman.png”是绝对位置,而“ assets / pacman.png”

  • 我的问题是关于以下代码示例: 我查看了Java-API,发现ImageIO类中有3种不同的read()方法: 1.: read(文件输入) 2.:读取(ImageInputStream) 3.:读取(输入流输入) 4.: read(URL输入) 我的问题是:在这个例子中使用了这四种方法中的哪一种?我有点困惑,因为在这个例子中 “getClass()”在这里返回“BufferedImageLoade

  • 我正在使用以下内容来获取此特定文件的URL,但它返回null。有人对该问题或执行此操作的替代方法有任何建议吗?