如何在 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