"System.getProperty()" 사용법
자바를 실행할 때, 실행되는 곳의 정보를 얻어오거나 운영체제의 정보가 필요할 때가 있습니다.
실행 위치에 있는 파일을 읽어드려야 하는데, 현재 위치를 알 수 있는 방법 등 시스템의 정보를 가져올때 System.getProperty() 를 사용합니다.
System.getProperty() 으로 괄호 안에 주어진 특정 문자를 적어넣으면 그 값이 String 으로 출력됩니다.
String dir = System.getProperty("user.home");
System.out.println(dir);
// 리눅스 인 경우 /home/유저명/
// macOS인 경우 //Users/유저명/
Property 주요 검색어
검색어 |
뜻 |
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 |
현재 디렉토리
|
property 확인 메소드해보기
import java.util.Properties; import java.util.Enumeration;
public class Test { public static void main(String[] args) { Properties props = System.getProperties(); for(Enumeration en = props.propertyNames(); en.hasMoreElements();) { String key = (String)en.nextElement(); String value = props.getProperty(key); System.out.println(key + "=" + value); } }
}
|
전혀 없는 키 만들기
전혀 없는 키값인데, System.getProperty("file.location.env"); 라면서 사용하는 경우가 있습니다.
이럴경우, JVM 의 VM arguments 부분을 살펴보면 다음과 같이 세팅되어 있다.
System.getProperty("file.location.env");
를 사용하기 위해서 JVM 의 VM arguments 부분에 설정해 주세요.
-Dfile.location.env="./fileUploads/"
JVM의 VM arguments 는 JVM을 구동할때, 필요한 여러가지 값을 세팅하는 것인데 -D하고 바로뒤에 키="값"을 세팅하면
프로그램내에서 System.getProperty("키"); 를 통해 값을 가져올 수 있습니다.
ava.runtime.name=Java(TM) 2 Runtime Environment, Standard Edition sun.boot.library.path=C:\Program Files\Java\jdk1.5.0_18\jre\bin java.vm.version=1.5.0_18-b02 java.vm.vendor=Sun Microsystems Inc. java.vendor.url=http://java.sun.com/ path.separator=; java.vm.name=Java HotSpot(TM) Client VM file.encoding.pkg=sun.io user.country=KR sun.java.launcher=SUN_STANDARD sun.os.patch.level=Service Pack 3 java.vm.specification.name=Java Virtual Machine Specification user.dir=C:\java\client
java.runtime.version=1.5.0_18-b02 java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment java.endorsed.dirs=C:\Program Files\Java\jdk1.5.0_18\jre\lib\endorsed os.arch=x86 java.io.tmpdir=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ line.separator=
java.vm.specification.vendor=Sun Microsystems Inc. user.variant= os.name=Windows XP sun.jnu.encoding=MS949 java.library.path=C:\Program Files\Java\jdk1.5.0_18\bin;
java.specification.name=Java Platform API Specification java.class.version=49.0 sun.management.compiler=HotSpot Client Compiler os.version=5.1 user.home=C:\Documents and Settings\Administrator user.timezone= java.awt.printerjob=sun.awt.windows.WPrinterJob file.encoding=MS949 java.specification.version=1.5 user.name=Administrator java.vm.specification.version=1.0 sun.arch.data.model=32 java.home=C:\Program Files\Java\jdk1.5.0_18\jre java.specification.vendor=Sun Microsystems Inc. user.language=ko awt.toolkit=sun.awt.windows.WToolkit java.vm.info=mixed mode, sharing java.version=1.5.0_18 file.separator=\ java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi sun.cpu.endian=little sun.io.unicode.encoding=UnicodeLittle sun.desktop=windows sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86
|
출처: https://unabated.tistory.com/entry/Java에서-SystemgetProperty [랄라라]