如何获取Java中的当前工作目录?

2022-08-31 03:55:46

我想使用 Java 访问我当前的工作目录。

我的代码:

 String currentPath = new java.io.File(".").getCanonicalPath();
 System.out.println("Current dir:" + currentPath);

 String currentDir = System.getProperty("user.dir");
 System.out.println("Current dir using System:" + currentDir);

输出:

Current dir: C:\WINDOWS\system32
Current dir using System: C:\WINDOWS\system32

我的输出不正确,因为 C 驱动器不是我的当前目录。

如何获取当前目录?


答案 1

法典:

public class JavaApplication {
  public static void main(String[] args) {
    System.out.println("Working Directory = " + System.getProperty("user.dir"));
  }
}

这将打印初始化应用程序的当前目录的绝对路径。


解释:

文档中

java.io包使用当前用户目录解析相对路径名。当前目录表示为系统属性,也就是说,它是从中调用 JVM 的目录。user.dir


答案 2

请参见:路径操作(™基本类> Java 教程>基本 I/O))。

使用 和 ,您可以执行以下操作来显示 Java 认为您当前的路径。这适用于7及以上,并使用NIO。java.nio.file.Pathjava.nio.file.Paths

Path currentRelativePath = Paths.get("");
String s = currentRelativePath.toAbsolutePath().toString();
System.out.println("Current absolute path is: " + s);

此输出:

Current absolute path is: /Users/george/NetBeansProjects/Tutorials

就我而言,这是我运行课程的地方。

以相对方式构造路径(不使用前导分隔符来指示您正在构造绝对路径)将使用此相对路径作为起点。


推荐