我正在使用Eclipse制作我创建的游戏的可执行jar文件,但是当我创建jar并运行它时,游戏中的图像不再显示。我在哪里存储图像以便jar文件可以访问它们?
答案 0 :(得分:8)
将它们放入jar中,然后使用Class.getResource
,Class.getResourceAsStream
,ClassLoader.getResource
或ClassLoader.getResourceAsStream
来访问它们。哪个最合适取决于你正在做什么,但你可能想要这样的东西:
Image image = new Image(Program.class.getResource("/images/foo.jpg"));
...其中Program.class
是同一jar文件中的任何类。或者,如果您将图像存储在与类相同的文件夹中(当您部署时),您可以使用:
Image image = new Image(GameCharacter.class.getResource("knight.jpg"));
这是相对资源名称。 (相对于有问题的班级。)
答案 1 :(得分: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);
}
答案 2 :(得分:0)
import java.net.URL;
URL imageURL = getClass().getResource("/Icon.jpg");
Image img = tk.getImage(imageURL);
this.frame.setIconImage(img);
答案 3 :(得分: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
替换为您自己的所有设置!