在 Java 中獲取使用者主目錄
-
使用 Java 中的
System.getProperty()
方法獲取使用者的主目錄 - 使用 Java 中的 Apache CommonsIO 庫獲取使用者的主目錄
-
使用 Java 中的
System.getenv()
方法獲取使用者的主目錄 - 總結
本教程介紹瞭如何在 Java 中獲取使用者主目錄,並列出了一些示例程式碼以指導你完成該主題。
對於多使用者作業系統,每個使用者都有一個檔案系統目錄;該目錄稱為使用者的主目錄。在 Java 中有多種方法可以找到使用者主目錄。讓我們來看看它們中的每一個。
使用 Java 中的 System.getProperty()
方法獲取使用者的主目錄
Java 中的 System
類有一個 Properties
物件,用於儲存當前工作環境的不同屬性和配置。它還儲存使用者的主目錄。
我們可以使用此類的 getProperty()
方法訪問這些屬性。我們需要傳遞我們想要檢視的系統屬性的名稱。在我們的例子中,它將是 user.home
。
下面的程式碼演示了它是如何工作的。
public class Main
{
public static void main(String[] args)
{
String userHomeDir = System.getProperty("user.home");
System.out.printf("The User Home Directory is %s", userHomeDir);
}
}
輸出:
The User Home Directory is C:\Users\Lenovo
如果你很好奇並想檢視所有系統屬性,可以使用 getProperties()
方法。getProperties()
方法的程式碼如下所示。
import java.util.Map;
import java.util.Properties;
public class Main
{
public static void main(String[] args)
{
Properties props = System.getProperties();
for(Map.Entry<Object, Object> prop : props.entrySet())
System.out.println("Property: +" + prop.getKey() + "\tValue: " + prop.getValue());
}
}
使用 Java 中的 Apache CommonsIO 庫獲取使用者的主目錄
Apache Commons 是一個非常強大的庫,可以使用 CommonsIO
庫的 FileUtils
類來獲取主目錄。
我們可以簡單地使用該類的 getUserDirectory()
方法來檢視使用者的主目錄。它返回一個代表主目錄的 File
物件。我們還可以使用 getUserDirectoryPath()
方法獲取主目錄的 String
路徑。
這些方法的程式碼和輸出如下所示。
import java.io.File;
import org.apache.commons.io.FileUtils;
public class Main
{
public static void main(String[] args)
{
File homeDir = FileUtils.getUserDirectory();
String homeDirPath = FileUtils.getUserDirectoryPath();
System.out.printf("The User Home Directory is %s\n", homeDir);
System.out.printf("The path of User Home Directory is %s", homeDirPath);
}
}
輸出:
The User Home Directory is C:\Users\Lenovo
The path of User Home Directory is C:\Users\Lenovo
使用 Java 中的 System.getenv()
方法獲取使用者的主目錄
System
類的 getenv()
方法用於獲取系統環境變數的值。我們需要傳遞我們想要訪問的環境變數的名稱。
要獲取使用者的主目錄,我們需要使用字串 USERPROFILE
。下面的程式演示了 getenv()
方法的工作。
public class Main
{
public static void main(String[] args)
{
String userHomeDir = System.getenv("USERPROFILE");
System.out.printf("The User Home Directory is %s", userHomeDir);
}
}
輸出:
The User Home Directory is C:\Users\Lenovo
你也可以使用此方法檢視所有環境變數。如果你想了解有關係統環境變數的更多資訊,請執行以下程式。
import java.util.Map;
public class Main
{
public static void main(String[] args)
{
Map<String, String> envVars = System.getenv();
for(Map.Entry<String, String> var : envVars.entrySet())
System.out.println(var.getKey() + " ---> " + var.getValue());
}
}
總結
在本指南中,我們將學習如何在 Java 中獲取使用者的主目錄。對於執行較舊 Java 版本(Java 8 之前)的某些 Windows 平臺,由於存在 ID 為 4787931 的錯誤,System.getProperty()
方法可能無法提供所需的結果。
另一個類似的錯誤(錯誤 ID 6519127)也存在。因此,getProperty()
方法會產生不良結果。但是,這兩個錯誤都已得到解決。
在大多數情況下,getProperty()
方法可以正常工作,但我們可以使用替代的 System.getenv()
方法來獲取使用者主目錄。