Java工作区和文件路径

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

new File("/folder") 

这给了我FileNotFoundException

如果我这样试试

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

有用

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

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

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

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

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

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

 System.out.println(System.getProperty("user.dir")); 
 new File("/folder") 

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

 new File("folder") 

要么

 new File("./folder") 

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

 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 

你可以尝试一下吗?

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

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

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

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