Java getResource 不能在 .jar 文件中工作

标签 java eclipse jar getresource

我正在尝试将我从 eclipse 制作的 pacman 游戏导出到 .jar 包。问题是,虽然在 eclipse 上一切运行良好,但当导出 .jar 时,我使用的资源无法正确加载。我把它们放在一个单独的 /res folder 中,它在构建路径上。我通过以下方式访问它们:

ClassLoader classLoader = getClass().getClassLoader();
    try{
         image = ImageIO.read(new File(classLoader.getResource("images/PM0.gif").getFile()));
    }
    catch (IOException e1) {
        e1.printStackTrace();

    }

File file = new File(classLoader.getResource("levels/"+fileName).getFile());

我做错了什么? here是我得到的错误示例(仅在 eclipse 上导出的 .jar 中运行良好)

最佳答案

在使用资源时,您应该始终将它们作为流而不是文件(除非您正在尝试做一些非常奇怪的事情)。

尝试以下操作:

ImageIO.read(classLoader.getResourceAsStream("images/PM0.gif"))

关于Java getResource 不能在 .jar 文件中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42728973/

相关文章:

java - 卸载旧 Java 版本后 Eclipse 崩溃

android - 无法在 ICS 4.03 模拟器上安装 apk

java - 如何将 CLIPS-JNI-JAVA 输出重定向到字符串

使用 javac 对同一 jar 成功编译后,java 在 jar 中找不到类

java - 如何在 JPQL 或 HQL 中进行限制查询?

java - 持续集成 - 仅部署更改的组件

java - Maven jgit JDWP传输错误

java - 如何使用 bash 在一个 jar 中执行多个 java 类文件

java - 我还缺少什么?我收到错误 : No suitable driver found for jdbc

java - 我如何组织和减少申请中的类(class)数量