我尝试使用test.gif
使用src/main/resources/test.gif
的绝对路径,以下列方式访问位于(ClassLoader
Eclipse中)的文件String absPath=this.getClass().getResource("/test.gif").toString();
System.out.print(Path);// prints the absolute path /Users/Abby/Project/SubFolder/ProjectName/target/classes/test.gif - the file exists at the location.
String relPath= "src/main/resources/test.gif";
< / p>
absPath
但是,访问relPath
会导致程序中的FileNotFoundException,而使用{{1}}则不会。
我究竟做错了什么?如何使用绝对路径(通过ClassLoader)正确访问文件
答案 0 :(得分:0)
你说的是相对路径,但你正在测试的路径&#34; /test.gif"以/开头,为什么! 在添加新问题之前,请先查看其他响应。 Preferred way of loading resources in Java
答案 1 :(得分:0)
使用URL和文件类:
URL url = getClass().getResource("/test.gif");
File file = new File(url.toURI();
System.out.println(file).getCanonicalPath());
此外,getCanonicalPath()将返回文件的绝对路径。 如果找不到资源,您可能需要检查null。