如何参考图像ONCE它们被打包成一个罐子?

时间:2014-03-19 23:30:57

标签: java swing embedded-resource

我正在尝试为java游戏制作背景。代码:

bg = new ImageIcon("src/sprites/bg.png").getImage();

在我开发时工作正常,但是一旦打包成jar,它似乎无法工作。此外,如果它有帮助,我正在使用eclipse。

2 个答案:

答案 0 :(得分:3)

要从同一个jar中的图像文件创建ImageIcon,您的代码将被加载:

bg = new ImageIcon(getClass().getResource("/sprites/bg.png")).getImage();

然后将您的图像文件放在您的classes目录而不是" src"目录(例如"类/精灵"在您的情况下)。

Java Swing: Displaying images from within a Jar的重复)

答案 1 :(得分:0)

要从类路径中读取任何资源,您需要提供相对于JAR的路径,以" /"开头。例如,让你有jar" test.jar"并且你在com.test.package.Testing.class中有任何类,所以要把这个类作为资源你需要使用路径

"/com/test/package.Testing.class"

您始终可以将资源作为流加载到JVM中。例如,您已将图像文件捆绑在类路径中的jar中。

首先使用

获取图像文件的输入流作为资源
Inputstream is = AnyClassWhichIsInSamejar.class.getClass().getResourceAsStream("/sprites/bg.png");

的getClass()的getResourceAsStream(" /sprites/bg.png");

现在在ImageIcon对象中转换此输入流