본문 바로가기
Web Programing!/JAVA / JSP

[JAVA] System.getProperty

by 어설픈봉봉이 2011. 9. 18.
반응형
SMALL





프로그램을 작성하다 보면  운영체제(OS)나 JVM 에 의존적인 정보를 알아야 할 때가 있습니다.

이때, System.getProperty(key) 메소드를 이용하여 각종 정보를 알수 있는데 key 부분에 알고자하는

키값을 넣으면 키에 해당하는 정보를 알려줍니다. 

키=값 형태로 나타나 있는데 앞에 있는 키를 넣으면 뒤에있는 값이 나옵니다.

각자 시스템에 따라 다른값이 나옵니다.

예를들어 System.getProperty("java.vm.version"); 을 하면 1.5.0_18-b02 값이 반환됩니다.


* 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);
        }
    }
}


* 나온 값들.

java.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



* 참고로 간혹 위에 없는 키값을 사용해서 당황해 하는 경우가 있습니다.

예를들어 위에는 전혀 없는 키값인데, System.getProperty("file.location.env"); 라면서 사용하는

경우가 있습니다.

이럴경우, JVM 의 VM arguments 부분을 살펴보면 다음과 같이 세팅되어 있습니다.

 -Dfile.location.env="C:\file\upload"

JVM의 VM arguments 는 JVM을 구동할때, 필요한 여러가지 값을 세팅하는 것인데

-D하고 바로뒤에 키="값"을 세팅하면 프로그램내에서 System.getProperty("키"); 를 통해 값을 가져올
 
수 있습니다.




반응형