Java 无法在jar中加载资源

Java 无法在jar中加载资源,java,jar,zip,export,Java,Jar,Zip,Export,我正在尝试将资源加载到jar中,下面是导出的jar: “main”是包含我所有类的包,在其中一个类中,我试图加载background.png文件。在我的Eclipse项目中,我将资源放在一个“res/”文件夹下,并将其添加到构建路径中以包含它。当我尝试使用 new File("background.png"); 新文件(“background.png”); 它找不到文件。 当我使用 MyClass.class.getClass().getClassLoader().getResource("b

我正在尝试将资源加载到jar中,下面是导出的jar:

“main”是包含我所有类的包,在其中一个类中,我试图加载background.png文件。在我的Eclipse项目中,我将资源放在一个“res/”文件夹下,并将其添加到构建路径中以包含它。当我尝试使用

new File("background.png"); 新文件(“background.png”); 它找不到文件。 当我使用

MyClass.class.getClass().getClassLoader().getResource("background.png"); MyClass.class.getClass().getClassLoader().getResource(“background.png”);
它仍然找不到文件。

打包在jar中的文件不能作为
文件
对象访问

当你尝试

MyClass.class.getClass().getClassLoader().getResource("background.png");
实际上,您使用的是
java.lang.Class
ClassLoader
,而不是
main.MyClass
,它可能无法找到资源(如果是系统类加载器)。试一试


相反。

打开文件的
新文件(“相对路径”)
方式取决于流程从何处开始。我认为,
MyClass.class.getClass()…
的方式要求资源与源代码位于同一目录中,因此请尝试将其转移到“main”文件夹中,看看是否有效……最后,在搜索internet数小时后,这解决了问题
MyClass.class.getClassLoader().getResource("background.png");