我有一个很容易解决的问题。 我在项目中有一个文件夹,想要使用相对路径获取它:
new File("/folder")
这给了我FileNotFoundException
如果我这样尝试
new File("d:/workspace/project/folder")
它有效
我怀疑它不起作用是因为:
new File("").getAbsolutePath()
返回:D:\eclipse
所以不是工作区的路径。
我做错了什么,或者我需要在eclipse中更改一些设置
答案 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());