Java工作区和文件路径



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

new File("/folder")

这给了我FileNotFoundException

如果我试试这个

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

它工作于

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

我是做错了什么,还是需要更改eclipse 中的一些设置

Don指出您使用的是绝对路径。这就是问题所在。

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

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

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

我刚刚在Run Cofigurations中找到了答案,就像djna建议的那样,但不是在Environment选项卡中,而是在Arguments选项卡中。有一个工作目录部分,其中设置了d:\eclipse,需要设置为${workspace_loc:myproject}

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());

最新更新