Java에서 System.getProperty()

Language/JAVA 2014. 1. 2. 15:54


System.getProperty 정리  JAVA / 컴퓨터 

2011/01/19 15:20

복사http://blog.naver.com/hopefuldream/140122065117

전용뷰어 보기

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

이때, System.getProperty(key) 메소드를 이용하여 각종 정보를 알수 있는데 key 부분에 알고자하는 키값을 넣으면 키에 해당하는 정보를

알려준다. 키는 아래와 같다.

키=값 형태로 나타나 있는데 앞에 있는 키를 넣으면 뒤에있는 값이 나온다는 말이다. 각자 시스템에 따라 다른값이 나온다.

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

 

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

* 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 부분을 살펴보면 다음과 같이 세팅되어 있다.

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

JVM의 VM arguments 는 JVM을 구동할때, 필요한 여러가지 값을 세팅하는 것인데 -D하고 바로뒤에 키="값"을 세팅하면

프로그램내에서 System.getProperty("키"); 를 통해 값을 가져올 수 있다.



Java에서 System.getProperty() 사용법


자바를 실행할 때, 실행되는 곳의 정보를 얻어오거나 운영체제의 정보가 필요할 때가 있습니다.

얼마전에 코드를 작성하면서 실행 위치에 있는 파일을 읽어드려야 하는데, 현재 위치를 알 수 있는 방법이 없을까 하고 찾아보니... System.getProperty()를 사용하여 쉽게 해결할 수 있었습니다.


1. System.getProperty 사용법


System.getProperty() 사용법은 간단합니다.
괄호 안에 주어진 특정 문자를 적어넣으면 그 값이 String 으로 출력됩니다.

예를 들어 실행하고 있는 현재 위치가 알고 싶다면 "user.dir" 이라고 적어주면 됩니다.

아래와 같이 "user.dir" 이라고 입력해봅니다.

String dir = System.getProperty("user.dir");
System.out.println(dir);


그 다음, 컴파일을 하면 아래와 같이 출력됩니다.

D:\Eclipse\eclipse-java-juno-win32\eclipse\workspace\test



2. Property 주요 검색어


검색어
java.versionJava 버전
java.vendorJava 공급자
java.vendor.urlJava 공급자 주소
java.homeJava를 설치한 디렉토리
java.class.versionJava 클래스 버전
java.class.pathJava 클래스 경로
java.ext.dir확장기능의 클래스 경로
os.name운영체제 이름
os.arch운영체제 아키텍처
os.version운영체제 버전 정보
file.separator파일 구분 문자
path.separator경로 구분 문자
line.separator행 구분 문자
user.name사용자 계정
user.home사용자 홈 디렉토리
user.dir현재 디렉토리


'Language > JAVA' 카테고리의 다른 글

한글, 유니코드의 이해  (0) 2014.01.14
정적 변수 정적 메소드 (static)  (1) 2014.01.07
Java에서 System.getProperty()  (2) 2014.01.02
tomcat7 cach filter  (0) 2013.12.03
jdk7 file write  (0) 2013.11.14
double 지수 표현 제거  (0) 2013.11.13
Trackbacks 2 : Comments 2
  1. 닭도리탕 2018.04.09 13:57 Modify/Delete Reply

    안녕하세요,. 글 잘 봤습니다~
    올려주신 property 주요 명령어 이외의 값들도 System.setProperty()를 통해서 개발자가 임의로
    설정할 수 있나요~?

    • 적외선 2018.04.18 19:03 신고 Modify/Delete

      물론 가능합니다.
      예제는 다음 링크를 확인하시면 좋을것 같습니다.
      https://www.tutorialspoint.com/java/lang/system_setproperty.htm

Write a comment