Java.nio.file.Paths为当前目录提供了错误的路径?

时间:2016-02-28 18:41:59

标签: java

我正在尝试使用Java.nio.file.Paths类读取文件的内容,我的代码看起来像这样

package com.test.json;

Path currentDir = Paths.get(".");
System.out.println(currentDir.toAbsolutePath());

它给了我路径

/home/rohit/workspace/MapReduceExample/.

而输出应为

home/rohit/workspace/MapReduceExample/src/com/test/json/

它忽略了src文件夹和包的组件。有人可以告诉我我做错了什么吗?

我不能给出绝对路径,因为我需要这个代码用于map-reduce路径,我必须以相对方式构造路径。所以,我的方法是做

getCurrentDirectoryPath + filename

1 个答案:

答案 0 :(得分:0)

在我看来,您期望源Java文件(调用$scope.IsSelected = function(section){ return $scope.SelectedSection.LinkID == section.LinkID; }; )所在目录的Path。但这不是路径Paths.get(".")将获取的内容。当JVM在主机文件系统上运行您的类时,"。"的值指的是JVM进程的当前工作目录。运行您的类的JVM很可能实际上是在该文件夹中启动的:"."。如果你做了

/home/rohit/workspace/MapReduceExample

你会看到它打印的是同一个文件夹,没有尾随System.out.println(Paths.get( System.getProperty("user.dir")).toAbsolutePath());