Java.nio.file.Paths为当前目录提供了不正确的路径?

Java.nio.file.Paths为当前目录提供了不正确的路径?,java,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/co

我试图使用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

在我看来,您需要源Java文件(调用
Path.get(“.”
)所在目录的
Path
)。但这不是路径
将获取的内容。当JVM在主机文件系统上运行类时,“.”的值表示JVM进程的当前工作目录。运行类的JVM很可能实际上是在该文件夹中启动的:
/home/rohit/workspace/MapReduceExample
。如果你做了一件事

System.out.println(Paths.get(
   System.getProperty("user.dir")).toAbsolutePath());

您将看到它打印的是同一个文件夹,没有尾随的

您需要当前运行时路径,这就是您得到的。如果您正在寻找代码来确定给定类的位置,尝试查看@azurefrog,那么我应该将数据移出src文件夹吗?嗯,是的。我认为 SRC层次结构只适用于源代码,但这是因为我习惯使用Maven,所以它有一个单独的<代码>资源目录,用于配置文件和其他非代码资源。