gpt4 book ai didi

java - 如何从 .jar 文件中包含的 ZIP 文件加载图像?

转载 作者:行者123 更新时间:2023-12-01 06:12:56 24 4
gpt4 key购买 nike

我们正在编写一款游戏,该游戏可以从 .jar 文件启动。首先,我们在 IntelliJ 中创建一个项目,并使用以下代码从 ZIP 加载图像:

ZipFile zf = null;
try {
zf = new ZipFile(zipPath);
Image Image = ImageIO.read(zf.getInputStream(zf.getEntry("Block/Air.png")));
} catch (IOException ignored) {}

现在没有 ZIP(仅来自 .jar)的尝试是:

Image image=ImageIO.read(getClass().getResourceAsStream(path+ "Block/Air.png"));

它不加载任何纹理。您有更好的组合方法吗?

编辑:似乎不是问题。

最佳答案

由于 jar 是 zip 文件,您可以将它们放在 jar 文件中并将它们放在类路径中。

Image image=ImageIO.read(getClass().getResourceAsStream(path+ "Block/Air.png"); 

路径必须是源路径根的相对路径。例如。我在“src/main/resource/my/cool/game/”路径中有一个文件是“/my/cool/game”。

如果您想使用 zip 文件,它必须位于 jar 文件之外。要加载 zip,您可以使用相对文件路径,如果您从 Intellij 和 dekstop 启动游戏,该路径是相同的。

更改 intellij 中的工作目录 look here .

最好的方法是将 zip 文件放在 jar 旁边,这样您就可以使用“.”。作为加载 zip 文件的工作目录。

或者,您可以使用固定目录,但是您的游戏需要某种安装,以便它知道在哪里可以找到 zip 文件。

如果使用“.”,则 zip 文件需要位于项目目录的根目录中。

关于java - 如何从 .jar 文件中包含的 ZIP 文件加载图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31435463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com