자바를 실행할 때, 실행되는 곳의 정보를 얻어오거나 운영체제의 정보가 필요할 때가 있습니다.
예를 들면 이미지를 업로드하고 화면에 뿌려줄 때 개발환경과 배포환경 os 가 다를 경우가 있겠죠.
만약 프로젝트를 개발시엔 윈도우를 사용하고 배포를 리눅스 환경에 시도 한다고 합시다.
윈도우에서 개발할 때는 이미지가 제대로 뿌려지지만 동일한 코드로 리눅스 환경에서 실행하게 되면 이미지가 엑박이 뜨게 될 겁니다.
이런 경우에 이미지에 대한 경로를 여러 환경에 맞춰 application.yml 에서 하드 코딩하는 방법도 있을 겁니다.
하지만 System.getProperty() 를 사용하면 좀 더 유연하게 코드를 작성할 수 있습니다.
실행 위치에 있는 파일을 읽어드려야 하는데, 현재 위치를 알 수 있는 방법 등 시스템의 정보를 가져올때 System.getProperty() 를 사용합니다.
System.getProperty() 으로 괄호 안에 주어진 특정 문자를 적어넣으면 그 값이 String 으로 출력됩니다.
String dir = System.getProperty("user.home");
System.out.println(dir);
// 리눅스인 경우 - /home/유저명/
// 리눅스인 경우(root 계정일 때) - /root/
// macOS인 경우 - //Users/유저명/
// window인 경우 - C:/Users/유저/
검색어 | 뜻 |
---|---|
java.version | Java 버전 |
java.vendor | Java 공급자 |
java.vendor.url | Java 공급자 주소 |
java.home | Java를 설치한 디렉토리 |
java.class.version | Java 클래스 버전 |
java.class.path | Java 클래스 경로 |
java.ext.dir | 확장기능의 클래스 경로 |
os.name | 운영체제 이름 |
os.arch | 운영체제 아키텍처 |
os.version | 운영체제 버전 정보 |
file.separator | 파일 구분 문자 |
path.separator | 경로 구분 문자 |
line.separator | 행 구분 문자 |
user.name | 사용자 계정 |
user.home | 사용자 홈 디렉토리 |
user.dir | 현재 디렉토리 |