gpt4 book ai didi

java - 使用 URL 或文件(在 ImageIO.read 中)

转载 作者:行者123 更新时间:2023-12-02 00:09:08 25 4
gpt4 key购买 nike

我制作了一个使用多个图像的应用程序。我有两种方法来运行我的应用程序:
- 在idea中按run
- 制作一个 fat jar 文件并从控制台运行它 java -jar app.jar

如果我想从 Idea 运行它,我必须使用:

BufferedImage backgroundImage = ImageIO.read(new File("res/field.png"));

而不是

BufferedImage backgroundImage = ImageIO.read(getClass().getClassLoader().getResource("res/field.png"));
<- 这就是我必须在 jar 文件情况下使用的内容

为什么?我以为他们是差不多的。有没有适合我的情况的通用方法?

最佳答案

我总是使用:

BufferedImage backgroundImage = ImageIO.read(getClass().getResource("res/field.png"));

它可以在 IDE 和 jar 中运行。 .getResource(...) 返回一个 URL,jar://或 file://

请注意,路径要么以/开头(在这种情况下,它相对于包根目录),要么相对于类包 - 如果您的类是 com.example.Test,/res/ 指的是文件夹 com/example/Test/res/。

您甚至可以使用静态版本 - YourClassName.class.getResource(...),它允许您轻松访问包树的其他“分支”(您可以使用来自位于不同分支的类的引用)

关于java - 使用 URL 或文件(在 ImageIO.read 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13231027/

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