导出到runnable jar时未加载图像

时间:2015-01-16 16:16:01

标签: java eclipse image export

我有一个用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)项目> (源包)蛇> (包)图片

(SourceFolder)项目> (源包)蛇> (包)蛇> .java文件

谢谢!

编辑:获得足够的代表发布图片

path

2 个答案:

答案 0 :(得分:1)

在jar中,你需要使用这样的代码作为资源访问文件(类似于.txt .WAV):

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

我不知道eclipse是否以不同方式打包..我通常使用cmd打包jar文件。

答案 1 :(得分:0)

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

第二个选项可以通过首先从“生成可运行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