자바 JAVA System 클래스 이용해서 관리하는 전체 속성값(Properties) 조회하는 방법

 

환경: Eclipse

 

JDK 에서 많이 쓰이는 클래스 중 하나는 System 입니다. 흔히 샘플 예제 출력할 때 System.out.println(“Hellow World”) 처럼 println() 함수를 자주 사용합니다. 이 외에도 System 클래스는 시스템 속성값 관리, 시스템 환경값 관리, GC 수행, JVM 종료, 현재 시간 조회 등이 가능합니다. 이 중에서 사용자가 조회해 볼 수 있는 시스템 속성값에 대해 알아 보겠습니다.

 

System 클래스를 이용하면 Java 에서 관리하고 있는 시스템 속성값들을 조회할 수 있습니다. 함수는 getProperty(String key) getProperties() 입니다. 함수명에서 알수 있듯이 getProperty() getProperties() 의 차이는 개별 속성값이냐 아니면 전체를 가져오느냐 입니다. 개발자들이 주로 사용하고 있는 프로퍼티는 다음과 같습니다.

 

l  java.version : Java 버전

l  java.vendor : Java 공급자

l  java.vendor.url : Java 공급자 URL

l  java.home : Java가 위치한 디렉터리

l  java.class.version : Java 클래스의 버전 ( 48(1.4), 49(1.5), 50(1.6), 51(1.7), 52(1.8) ...

l  java.class.path : App ClassLoader에 로딩된 클래스 경로

l  java.ext.dir : Ext ClassLoader에 로드할 클래스가 위치한 경로

l  os.name : OS명 의 이름

l  os.arch : OS 아키텍처

l  os.version : OS 버전

l  file.separator : 파일 구분자 /(Unix계열), \(Windows)

l  path.separator : 경로 구분자. :(Unix계열), ;(Windows)

l  line.separator : 개행 문자 0x0A(LF, Unix계열), 0x0D0x0A(CR/LF, Windows)

l  user.name : 사용자 계정명

l  user.home : 사용자 홈 디렉토리

l  user.dir : 현재 작업 디렉토리

 

위에서 소개한 주요 프로퍼티를 조회해 보도록 하겠습니다. 앞에 있는 글이 키값입니다. 키값을 getProperty() 의 인수로 넘기면 해당하는 값을 알려 줍니다.

  

이외에도 어떤 속성값이 있는지 Key 와 값 전체를 출력해 보겠습니다. 실행 소스는 다음과 같습니다. 전체 속성값을 보시고 필요한 것이 있으면 Key 값을 이용해 정보를 얻으시기 바랍니다

import java.util.Enumeration;
import java.util.Properties;

public class SystemSearch {

	public static void main(String[] args) {
		Properties props = System.getProperties(); 
		Enumeration<Object> enumm = props.keys(); 
		while (enumm.hasMoreElements()) { 
		    String key = (String) enumm.nextElement(); 
		    String value = (String) props.get(key); 
		    System.out.println("# " + key + " : " + value);
		}
	}
}


SystemSearch 클래스를 실행한 결과 입니다. 세미콜론(“:”) 을 기준으로 앞은 Key 며 뒤는 Key 에 해당하는 값입니다.

 

# java.runtime.name : Java(TM) SE Runtime Environment

# sun.boot.library.path : C:\Program Files\Java\jdk1.7.0_40\jre\bin

# java.vm.version : 24.0-b56

# java.vm.vendor : Oracle Corporation

# java.vendor.url : http://java.oracle.com/

# path.separator : ;

# java.vm.name : Java HotSpot(TM) 64-Bit Server VM

# file.encoding.pkg : sun.io

# user.country : KR

# user.script :

# sun.java.launcher : SUN_STANDARD

# sun.os.patch.level : Service Pack 1

# java.vm.specification.name : Java Virtual Machine Specification

# user.dir : D:\Project\ProjectJava\HellowSample

# java.runtime.version : 1.7.0_40-b43

# java.awt.graphicsenv : sun.awt.Win32GraphicsEnvironment

# java.endorsed.dirs : C:\Program Files\Java\jdk1.7.0_40\jre\lib\endorsed

# os.arch : amd64

# java.io.tmpdir : C:\Users\gon\AppData\Local\Temp\

# line.separator :

# java.vm.specification.vendor : Oracle Corporation

# user.variant :

# os.name : Windows 7

# sun.jnu.encoding : MS949

# java.library.path : C:\Program Files\Java\jdk1.7.0_40\bin;C:\Windows\Sun\Java\bin;

# java.specification.name : Java Platform API Specification

# java.class.version : 51.0

# sun.management.compiler : HotSpot 64-Bit Tiered Compilers

# os.version : 6.1

# user.home : C:\Users\gon

# user.timezone :

# java.awt.printerjob : sun.awt.windows.WPrinterJob

# file.encoding : MS949

# java.specification.version : 1.7

# java.class.path : D:\Project\ProjectJava\HellowSample\bin;

# user.name : gon

# java.vm.specification.version : 1.7

# sun.java.command : com.example.SystemSearch

# java.home : C:\Program Files\Java\jdk1.7.0_40\jre

# sun.arch.data.model : 64

# user.language : ko

# java.specification.vendor : Oracle Corporation

# awt.toolkit : sun.awt.windows.WToolkit

# java.vm.info : mixed mode

# java.version : 1.7.0_40

# java.ext.dirs : C:\Program Files\Java\jdk1.7.0_40\jre\lib\ext;

# sun.boot.class.path : C:\Program Files\Java\jdk1.7.0_40\lib\resources.jar;

# java.vendor : Oracle Corporation

# file.separator : \

# java.vendor.url.bug : http://bugreport.sun.com/bugreport/

# sun.io.unicode.encoding : UnicodeLittle

# sun.cpu.endian : little

# sun.desktop : windows

# sun.cpu.isalist : amd64


저작자 표시 비영리 변경 금지
신고
Posted by 녹두장군