导出到可运行 jar 时未加载图像

Images not loaded when exporting to runnable jar

我有一个用 java 编写的贪吃蛇游戏,但是当我将项目导出为 Runnable Jar 时,图像没有加载。他们在日食中工作得很好。有什么问题?

我的 loadImages 方法如下所示:

private void loadImages() { 
    ImageIcon snakeBlockIcon = new ImageIcon("snake/images/snakeBody20px.png");
    snakeBlockImage = snakeBlockIcon.getImage();
    snakeBlockImage = snakeBlockImage.getScaledInstance(DOT_SIZE, DOT_SIZE, Image.SCALE_DEFAULT);
...

我的项目结构如下:

(SourceFolder)Projects > (source package) snake > (package) images

(SourceFolder)Projects > (source package) snake > (package) snake > .java 文件

谢谢!

编辑:为post图像赢得足够的代表

Eclipse 不会在 jar 中包含除代码之外的任何其他内容,因此您必须手动添加需要的文件或修改 Eclipse 生成 jar 的方式。

通过首先从 "Generate runnable jar" 屏幕导出 ant 构建文件,然后编辑它以包含您的文件,可以轻松完成第二个选项。

要修改它,找到jar任务,它应该是target元素中name属性为"build_run_jar"(<target name="build_run_jar">)的第一个元素,并在其中添加以下元素:

<fileset dir="path/to/your/files"/>

将路径替换为包含您的文件的文件夹的相对或绝对路径。

如果您想包含目录中的特定文件,您可以显式包含它们(请注意,这样只会包含您指定的文件):

<fileset dir="your/path"/>
    <include name="filename"/>
</fileset>

有关更多信息,您可以阅读 Ant manual about the Jar task

在 jar 中,您需要使用如下代码(类似于 .txt .WAV)访问文件作为资源:

ImageIcon ic = new ImageIcon(getClass().getResource("/machetelife.jpg"));

不知道是不是eclipse打包的不一样。。我一般都是用cmd打包jar文件。