【问题标题】:Including Images with an executable jar包含带有可执行 jar 的图像
【发布时间】:2025-12-12 16:40:01
【问题描述】:

我整天都在浏览 * 寻找如何做到这一点,但我还没有成功

我正在将我制作的快速游戏打包成可执行 jar,但我没有正确引用图像我只是引用了文件

background = ImageIO.read(new File("wood.jpeg"));

我的课程在 src 默认包中 我不确定应该在哪里添加图像,或者是否必须将其添加到构建路径 或在最新版本的eclipse中将图像添加到构建路径的正确方法

【问题讨论】:

    标签: java image jar embedded-resource javax.imageio


    【解决方案1】:

    Jar 中的文件不是磁盘上文件意义上的文件。它们只是(可能)压缩的字节流。

    Java 通过使用ClassLoader 可以轻松地从 Jar 文件中提取这些“资源”

    background = ImageIO.read(getClass().getResource("/wood.jpeg"));
    

    应该可以...

    这将返回一个URLImageIO 可以使用它来加载资源。

    你也可以阅读

    我还可以列出更多。所以,是的,它被问了很多;)

    【讨论】:

    • +1 非常简单的解释,但您还应该提及图像在项目中的位置。例如src/main/resources 供 maven 使用。
    • @asgs 我觉得这一点超出了问题的范围。通过正确的构建文件/环境,我们可以在构建时生成图像。
    • @AndrewThompson 对,只是想让 OP 知道有一个专用于资源的常用目录。 @-MadProgrammer 是的,这是一个简单的例子。
    • 我得到了这个工作,但只有在将图像文件拖到 bin 文件夹之后,虽然我一直无法启动可执行 jar ......谢谢!
    【解决方案2】:

    尝试使用 Eclipse 使用 Constructing Runnable Jar

    R_Click on the Project in the Package Explorer ---> 
    Export ---> Runnable JAR file ---> 
    Select the option of Package required libraries into generated JAR
    

    【讨论】:

    • 此选项指的是库而不是资源,并且它不解决尝试像File一样加载zip条目的问题。
    最近更新 更多