Java getClass().getResource不支持';找不到图像文件

Java getClass().getResource不支持';找不到图像文件,java,eclipse,classloader,Java,Eclipse,Classloader,我的类IntroState.java具有以下路径: Project/src/GameState/IntroState.java 我的图像位于: Project/Resources/Images/logo.png 文件夹资源是一个源文件夹。我用氧气 我尝试加载以下内容: new BufferedImage image = ImageIO.read(getClass().getResource("/Images/logo.png"); 当我运行它时,我得到一个NullPointerExcept

我的类IntroState.java具有以下路径:

Project/src/GameState/IntroState.java
我的图像位于:

Project/Resources/Images/logo.png
文件夹资源是一个源文件夹。我用氧气

我尝试加载以下内容:

new BufferedImage image = ImageIO.read(getClass().getResource("/Images/logo.png");
当我运行它时,我得到一个
NullPointerException
。 这段代码在一个较旧的项目中运行良好,但我的笔记本电脑死掉了,我不得不重新安装Eclipse并重新编写代码,从那时起它就停止了工作。 有人看到问题了吗?
我尝试了很多不同的路径,我感觉我的一些Eclipse设置可能是错误的。

它将根据类的位置搜索图像。由于GamesState.Introstate类位于Project/src(实际上在eclipse中,它可能位于Project/bin),因此当您使用路径时,它将在Project/src/Images/logo.png中查找图像
/Images/logo.png

您应该以流的形式读取文件

尝试使用:

getClass().getClassLoader().getResourceAsStream("Images/logo.png")


如果没有看到项目的结构或设置,就很难判断项目出了什么问题。也许您需要使用一些清除/重建选项?如果这对加载资源没有帮助,请看一下关于加载资源的问题:,Eclipse为我们指出的是Eclipse项目设置中Java构建路径中包含的资源目录是哪个?请查看jar(zip格式)以查找
/Images/logo.png
。区分大小写。将文件夹标记为源文件夹应该已经完成了,并且
IntroState.class.getResource(“/Images/logo.png”)
。如问题中所述,文件夹“Resources”作为源文件夹包含在生成路径中。我还多次重建了该项目。我已经在使用相同的文件夹结构时遇到过类似的情况,“资源”中的图像是通过getClass()找到的。getResource(“/images/logo.png”);:在委派之前,使用此算法从给定的资源名称构造绝对资源名称:如果名称以“/”开头(“\u002f”),则资源的绝对名称是名称中“/”后面的部分。否则,绝对名称的形式为:modified_package_name/name,其中modified_package_name是此对象的包名,用“/”代替“.”(“\u002e”)。要找到它,它必须位于类路径上。如果您不知道类路径是什么,您需要一个基本的java教程。因此,它不能在项目/资源中,因为项目/资源的任何部分都不是类路径的一部分。因此,将其移动到src下的某个位置,然后使用调用getResource()的类的类路径条目中的绝对路径或相对路径(如果将其置于GameState中),并使用IntroState作为getResource()的类,然后使用“/GameState/logo.png”或仅使用“logo.png”我还能得到一份工作吗NullPointerException@Nafta对不起,以前有个错误。您是否尝试过更新版本的答案?您不应该在路径前面附加“/”,我尝试了使用“/”和不使用“getClassLoader()”两种方法。它总是抛出一个错误。
getClass().getClassLoader().getResource("Images/logo.png")