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