Java에서 사용자 홈 디렉토리 가져오기

Mohammad Irfan 2023년10월12일
  1. Java의 System.getProperty() 메소드를 사용하여 사용자의 홈 디렉토리 가져오기
  2. Java에서 Apache CommonsIO 라이브러리를 사용하여 사용자의 홈 디렉토리 가져오기
  3. Java의 System.getenv() 메소드를 사용하여 사용자의 홈 디렉토리 가져오기
  4. 요약
Java에서 사용자 홈 디렉토리 가져오기

이 튜토리얼은 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() 메소드를 사용하여 사용자 홈 디렉토리를 가져올 수 있습니다.

관련 문장 - Java Home

관련 문장 - Java Directory