文件的绝对路径中的FileNotFoundException(即使文件存在)。为什么?

时间:2014-11-20 07:00:55

标签: java eclipse

我尝试使用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)正确访问文件

2 个答案:

答案 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。