Java - 从文件路径获取映像

Java - 从文件路径获取映像

问题描述:

嘿,是否有可能从文件中获取图像而不使用java中的完整文件位置?我下面的代码将只与完整的文件路径工作: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"); 
+2

尝试删除第一个'/'。 – Dukeling 2013-02-24 15:09:14

+0

您将不得不适当地设置'CLASSPATH'。 – 2013-02-24 15:10:43

+1

感谢您提供有用的评论,而不是像其他人一样否定评论 – user1851487 2013-02-24 15:11:05

“/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。