协慌网

登录 贡献 社区

使用 Java 获取当前工作目录

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

String current = new java.io.File( "." ).getCanonicalPath();
        System.out.println("Current dir:"+current);
 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 盘不是我当前的目录。在这方面需要帮助。

答案

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

这将打印出初始化应用程序完整绝对路径。

请参阅: http//docs.oracle.com/javase/tutorial/essential/io/pathOps.html

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

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

这个输出Current relative path is: /Users/george/NetBeansProjects/Tutorials ,在我的例子中是我运行类的地方。以相对方式构造路径,通过不使用前导分隔符来指示您正在构建绝对路径,将使用此相对路径作为起点。

以下适用于 Java 7 及更高版本(有关文档,请参见此处 )。

import java.nio.file.Paths;

Paths.get(".").toAbsolutePath().normalize().toString();