java - 无法加载jar中的资源

标签 java jar zip export

我正在尝试将资源加载到 jar 中,这是导出的 jar: enter image description here

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

new File("background.png");

找不到该文件。 当我使用时

MyClass.class.getClass().getClassLoader().getResource("background.png");

仍然找不到该文件。

最佳答案

打包在 jar 中的文件无法作为 File 对象进行访问。

当你尝试

MyClass.class.getClass().getClassLoader().getResource("background.png");

您实际上使用的是java.lang.ClassClassLoader,而不是main.MyClass,它可能无法找到资源(如果它是系统类加载器)。尝试一下

MyClass.class.getClassLoader().getResource("background.png");

相反。

关于java - 无法加载jar中的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34496802/

相关文章:

java - 检测 JDialog 中 JPanel 上执行的操作

java - 每次运行此代码时,可观察列表插入顺序都会发生变化。怎么解决这个问题?

c# - 如何了解 zip 文件是否损坏或仍在传输

java.util.zip.ZipException : invalid CEN header (bad signature)

java - 多选 NPE 中的 JPA/Hibernate 函数

java - 不明白这些按位运算符如何对字节和整数进行操作

java - 导出为JAR后如何使JAVA接口(interface)被其他类设为 "implements"?

java - httpclient jar 冲突。如何解决?

java - 使用 Windows 调度程序调度任务以运行 .jar 文件和 .ini 配置文件

c# - zip 函数的用途是什么(如在 Python 或 C# 4.0 中)?