在我的java项目中.get(“.”)引用的路径是什么?

axzmvihb  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(274)

在我当前的项目中,根目录是 C:\Users\Duke . 调用 Path.get(".") 是在 C:\Users\Duke\src\dependencies\storage\Store.java . 我需要将数据写入并保存到一个文件中,但由于它必须在不同的系统上运行,因此无法指定绝对路径。
我打电话给 Path.get(".").forEach(System.out::println) 它把所有的目录都打印出来了 src 而不是 storage . 这让我非常困惑。难道不是吗 Path.get(".") 请参阅代码所在的当前目录,该目录位于 storage 目录?

bbuxkriu

bbuxkriu1#

. 返回应用程序的工作目录。一般来说,这是您启动java虚拟机以执行java类的目录。
它不能引用代码的位置,因为它可以无处不在,例如,在internet上的某个地方,您的类加载器下载了要执行的类(在java小程序还是一种东西或webstart应用程序的旧时代[tm]非常常见)。

nnt7mjpx

nnt7mjpx2#

. 表示“工作目录”的相对路径,即运行程序的目录。这通常不是编译程序的源文件的目录或路径。你能做到的 Paths.get(".").toAbsolutePath() 查看它所代表的确切目录。
如果您使用的是ide,可能很难判断它使用哪个目录作为其工作目录,但通常是项目根目录。通常可以从ide中配置工作目录。
如果您试图加载项目中的文件(如数据文件),您可能会发现资源比直接访问文件系统更好。

相关问题