gpt4 book ai didi

java - java中的绝对/相对路径(jar、ide)

转载 作者:行者123 更新时间:2023-12-04 04:44:40 25 4
gpt4 key购买 nike

我的程序使用 Image.class,它可以帮助我接收图像。
Image img = new ImageIcon("Shooter2D/res/background.jpg").getImage();
当程序从开发环境运行时 - 一切正常,编译 jar 文件后 - 不起作用。
告诉我如何正确设置路径以在 IDE (Intellij IDEA) 和存档中工作。
Shooter2D.jar 包含:

- META-INF
Manifest-Version: 1.0
Main-Class: Shooter2Dv22082013.Main
- res
all pictures
- Shooter2Dv22082013
all .class files, main is Main.class

指示性数字: http://imageshack.us/photo/my-images/801/eyjv.png/

最佳答案

这是什么 the javadoc说到 ImageIcon 的构造函数:

Creates an ImageIcon from the specified file. The image will be preloaded by using MediaTracker to monitor the loading state of the image. The specified String can be a file name or a file path.



(强调我的)

您的图像未存储在文件中。它不在您的文件系统中。它位于类路径中的 jar 中。这就是你想要从哪里加载它。无论您的应用程序的 jar 文件位于最终用户机器上的哪个位置,您的程序都希望从这个 jar 文件加载它。这个 jar 文件中的所有资源都可以从 ClassLoader 中获得。

所以你应该使用
new ImageIcon(MyClass.class.getResource("/res/background.jpg"))


new ImageIcon(MyClass.class.getClassLoader().getResource("res/background.jpg"))

关于java - java中的绝对/相对路径(jar、ide),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18379674/

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