我正在使用 Eclipse 制作我创建的游戏的可执行 jar 文件,但是当我创建 jar 并运行它时,游戏中的图像不再显示。我在哪里存储图像以便 jar 文件可以访问它们?
问问题
6035 次
4 回答
8
将它们放入罐子中,然后使用Class.getResource
、或来访问它们。哪个最合适取决于您还在做什么,但您可能想要类似的东西:Class.getResourceAsStream
ClassLoader.getResource
ClassLoader.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 回答