当前位置: 首页 > 面试题库 >

Java ImageIO.read(getClass()。getResource())返回null

龙晟睿
2023-03-14
问题内容

线

andImg = ImageIO.read(getClass().getResource("gate_and.png"));

失败于

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: input == null!

我正在使用Eclipse,并且在bin文件夹下的导航视图中有文件gate_and.png,表明该文件位于构建路径中。

在包浏览器视图中,我有

project/src/view/class  - This is the class that has the code above.

project/images/gate_and.png

我右键单击项目文件夹>构建路径>链接源以将images文件夹添加为源,再次执行此操作会提供一条确认消息,指出源中已存在图像。

我还尝试过将gate_and.png更改为images /
gate_and.png和/images/gate_and.png,但是由于图像gate_and.png在bin文件夹中,因此我认为原始图片是正确的。


问题答案:

假设您的课程在package中view.random.name,则

getClass().getResource("gate_and.png")

会在以下位置寻找资源

/view/random/name/gate_and.png

相对于类路径的根。您显然那里没有该名称的资源。

通过设置project/images为构建路径条目,Eclipse将在类路径中包括所有内容。因此,您的资源将显示在

/gate_and.png

您可以使用

getClass().getResource("/gate_and.png")

请注意 开头/,这意味着 开始查看类路径的根 ,即。这是一条绝对的道路。

所有这些规则在javadoc中进行了解释。



 类似资料:
  • 当我尝试从eclipse中的资源目录加载一个图像时,我总是得到一个空指针异常(null pointer exception,NPE)。res文件夹位于项目目录中。这是我得到NPE的地方: 当我移除getClass().getReource()时,将返回图像: 当我打印res目录的URL时,我得到null: 谢谢

  • 这是层次结构: 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。有人对该问题或执行此操作的替代方法有任何建议吗?