3

我正在使用 Eclipse 制作我创建的游戏的可执行 jar 文件,但是当我创建 jar 并运行它时,游戏中的图像不再显示。我在哪里存储图像以便 jar 文件可以访问它们?

4

4 回答 4

8

将它们放入罐子中,然后使用Class.getResource、或来访问它们。哪个最合适取决于您还在做什么,但您可能想要类似的东西:Class.getResourceAsStreamClassLoader.getResourceClassLoader.getResourceAsStream

Image image = new Image(Program.class.getResource("/images/foo.jpg"));

...同一个 jar 文件中Program.class任何类在哪里。或者,如果您将图像存储在与类相同的文件夹中(在部署时),您可以使用:

Image image = new Image(GameCharacter.class.getResource("knight.jpg"));

这是一个相对的资源名称。(相对于有问题的班级。)

于 2013-02-18T15:48:21.393 回答
0

为什么不能将它们嵌入到 jar 文件中?

更新:我在其中一项作业中的表现如下:将图像嵌入到 jar 文件中,并且:

URL url = getClass().getResource("/banana.jpg");
if (url == null)
{
    // Invalid image path above
}
else
{
    // path is OK
    Image image = Toolkit.getDefaultToolkit().getImage(url);
}
于 2013-02-18T15:48:44.543 回答
0
import java.net.URL; 

URL imageURL = getClass().getResource("/Icon.jpg");
Image img = tk.getImage(imageURL);
this.frame.setIconImage(img);
于 2014-01-15T11:21:55.760 回答
0

我的文件结构是:

./ - the root of your program
|__ *.jar
|__ path-next-to-jar/img.jpg

代码:

String imgFile = "/path-next-to-jar/img.jpg";
InputStream stream = ThisClassName.class.getClass().getResourceAsStream(imgFile);
BufferedImage image = ImageIO.read(stream);

替换ThisClassName为您自己的,一切就绪!

于 2017-01-23T01:57:29.233 回答