嘿是否可以在不使用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");
答案 0 :(得分: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。