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

Mohammad Irfan 2023年1月30日 2020年10月27日
  1. 在 Java 中使用 System.getProperty() 方法获取当前工作目录
  2. 使用 Java 中的 toAbsolutePath() 获取当前工作目录
  3. 使用 Java 中的 normalize() 方法获取当前工作目录
  4. 在 Java 中使用 FileSystems.getDefault() 方法获取当前工作目录
  5. 使用 Java 中的 getAbsoluteFile() 方法获取当前工作目录
  6. 在 Java 中使用 getClass() 方法获取当前的工作目录
如何在 Java 中获取当前工作目录

本教程介绍了如何获取当前工作目录,并列举了一些示例代码来理解。

获取当前工作目录的方法有几种,这里我们用到了 System.getProperty()toAbsolutePath()FileSystems.getDefault() 等方法。我们来看看实例。

在 Java 中使用 System.getProperty() 方法获取当前工作目录

System.getProperty() 方法是返回由键(参数)表示的系统属性。例如,user.dir 返回用户目录,os.name 返回操作系统的名称。这里,我们用这个方法来获取当前用户工作目录。请看下面的例子。

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

输出:

Current Working Directory is = D:\eclipse-workspace\corejavaexamples

使用 Java 中的 toAbsolutePath() 获取当前工作目录

toAbsolutePath() 方法可以获得任何位置的绝对路径。这里,我们用这个方法来获取当前目录的绝对路径。请看下面的例子。

import java.nio.file.Path;
import java.nio.file.Paths;

public class SimpleTesting {

	public static void main(String[] args) {
		Path path = Paths.get("");
		String directoryName = path.toAbsolutePath().toString();
		System.out.println("Current Working Directory is = " +directoryName);
	}
}

输出:

Current Working Directory is = D:\eclipse-workspace\corejavaexamples

使用 Java 中的 normalize() 方法获取当前工作目录

normalize() 方法从当前路径返回一个路径,在这个路径中,所有多余的名称元素都被删除。我们将此方法与 toAbsolute() 方法一起使用,通过消除多余的名称来获得当前工作目录。请看下面的例子。

import java.nio.file.Path;
import java.nio.file.Paths;

public class SimpleTesting {

	public static void main(String[] args) {
		Path path = Paths.get("");
		String directoryName = path.toAbsolutePath().normalize().toString();
		System.out.println("Current Working Directory is = " +directoryName);
	}
}

输出:

Current Working Directory is = D:\eclipse-workspace\corejavaexamples

在 Java 中使用 FileSystems.getDefault() 方法获取当前工作目录

我们可以使用 FileSystem 类的 getDefault() 方法来获取默认的 Filesystem,然后使用 toAbsolutePath() 方法来获取当前工作目录的绝对路径。请看下面的例子。

import java.nio.file.FileSystems;
import java.nio.file.Path;

public class SimpleTesting {

	public static void main(String[] args) {
		Path path = FileSystems.getDefault().getPath("");
		String directoryName = path.toAbsolutePath().toString();
		System.out.println("Current Working Directory is = " +directoryName);
	}
}

输出:

Current Working Directory is = D:\eclipse-workspace\corejavaexamples

使用 Java 中的 getAbsoluteFile() 方法获取当前工作目录

我们可以使用 getAbsoluteFile() 方法来获取当前文件的位置,实际代表当前目录的位置。请看下面的例子。

import java.io.File;

public class SimpleTesting {

	public static void main(String[] args) {
		File file = new File("");
		String directoryName = file.getAbsoluteFile().toString();
		System.out.println("Current Working Directory is = " +directoryName);
	}
}

输出:

Current Working Directory is = D:\eclipse-workspace\corejavaexamples

在 Java 中使用 getClass() 方法获取当前的工作目录

我们可以使用 Java 中 Object 类的 getClass() 方法来返回当前正在运行的类,进一步可以用 getPath() 方法来获取当前工作目录的路径。请看下面的例子。

public class SimpleTesting {

	String getCurrentDirectory() {
		return this.getClass().getClassLoader().getResource("").getPath();
	}
	
	public static void main(String[] args) {
		
		String directoryName = new SimpleTesting().getCurrentDirectory();
		System.out.println("Current Working Directory is = " +directoryName);
	}
}

输出:

Current Working Directory is = D:\eclipse-workspace\corejavaexamples

相关文章 - Java File