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



我正在尝试使用 Java.nio.file.Path 类读取文件的内容,我的代码如下所示

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 文件(调用 Paths.get("."))所在的目录Path。但这不是"."将要获取的路径。当 JVM 在主机文件系统上运行您的类时,"." 的值是指 JVM 进程的当前工作目录。运行类的 JVM 很可能实际上是在该文件夹中启动的:/home/rohit/workspace/MapReduceExample 。如果你做了一个

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

您将看到它打印相同的文件夹,没有尾随"."

最新更新