0

嘿,是否可以在不使用 java 中的完整文件位置的情况下从文件中获取图像?我下面的代码仅适用于完整的文件路径:

Icon icon = new ImageIcon("/Users/MyMac/Documents/Project/Software/Project/src/UI/Images/default_pic.png");

是否可以这样使用文件路径?:

Icon icon = new ImageIcon("/src/UI/Images/default_pic.png");
4

1 回答 1

2

"/src/UI/Images/default_pic.png" 是绝对路径,所以它会在根目录中查找 src 目录,然后在其中查找 UI 子目录,等等。这不是您想要的。

您可以使用诸如“src/UI/Images/default_pic.png”之类的相对路径(注意它不以“/”开头),但正如它的名字所说,它是相对于当前目录的。因此,如果您的当前目录是 /Users/MyMac/Documents/Project/Software/Project (或包含同一子路径中的文件的任何目录),它将起作用,否则不会。

最后,另一种方法是通过类路径访问文件。考虑到项目可以打包成 jar 文件,图像文件可能不是磁盘上的单独文件,但您仍然可以获取 URL 或 InputStream 来访问它。在 Class 和 ClassLoader 中搜索 getResource 和 getResourceAsStream。

于 2013-02-24T15:25:56.127 回答