Java工作区和文件路径

时间:2013-04-22 17:15:32

标签: java file relative-path absolute-path

我有一个很容易解决的问题。 我在项目中有一个文件夹,想要使用相对路径获取它:

new File("/folder")

这给了我FileNotFoundException

如果我这样尝试

new File("d:/workspace/project/folder")

它有效

我怀疑它不起作用是因为: new File("").getAbsolutePath()返回:D:\eclipse 所以不是工作区的路径。

我做错了什么,或者我需要在eclipse中更改一些设置

6 个答案:

答案 0 :(得分:4)

刚刚在运行配置中找到了我的回答,比如djna建议,但不是在环境选项卡中,而是在参数选项卡中。有一个工作目录部分,其中设置了d:\ eclipse,需要将其设置为$ {workspace_loc:myproject}

答案 1 :(得分:3)

唐已指出你使用绝对路径。这就是问题所在。

默认情况下,Eclipse中的工作目录是项目的路径,其中是您执行的程序。

您可以通过显示以下属性来了解工作目录:

System.out.println(System.getProperty("user.dir"));

答案 2 :(得分:2)

new File("/folder")

不是相对路径,而是绝对路径。 如果要访问相对路径使用

new File("folder")

new File("./folder")

答案 3 :(得分:1)

你能试试吗?

File file = new File("folder");
String path = file.getAbsolutePath();
FileInputStream fis = new FileInputStream(path);

答案 4 :(得分:1)

在运行配置中,您可以指定启动的工作目录。这可能会因不同的日食而有所不同,但对我而言:

Run->Run Cofigurations ...
Select Java Application, right Click New
Environment Tab gives you a chance to specify the working directory
    Select Other, and then Workspace ... to specify a project in your workspace

答案 5 :(得分:0)

D:\eclipse是项目的根文件夹。如果您在同一工作区中的D:\java中创建另一个项目,new File("").getAbsolutePath()将返回D:\java,因此这与工作区的路径无关。

如果您想在项目中使用文件夹,请使用.,例如:

System.out.println(new File(".\\test").getAbsolutePath());