자바(Java)/JAVA 2SE

시스템의 환경 및 표준 입출력과 에러 담당 System 클래스

본클라쓰 2009. 8. 13. 11:53

 

 java.lang.System클래스는 자바의 표준 입/출력 및 에러 출력 스트림, 외부적으로 정의된 프로퍼티 및 환경 변수에 액세스, 파일 및 라이브럴리의 로딩 방법, 배열의 일부를 재빠르게 카피하는 유틸리티 메소드가 있다. 또한 System클래스는 인스턴스화 할 수 없다. 따라서 생성자('new'키워드)를 통해 객체를 생성해 사용할 수 없다.

  

 

■ System클래스 속성(멤버변수)

 

필드(속성)

설명

static PrintStream err

에러 출력 스트림

static InputStream in

입력 스트림(InputStream객체를 가리키고 있으며 표준 입력에 사용된다.)

static PrintStream out

출력 스트림(PrintStream 객체를 가리키고 잇으며 print()메소드와 println()메소드를 사용하여 PrintStream객체에 정의된 파라미터를 전달받아 문자열을 모니터에 출력하는 일을 수행한다.)

  

■ System클래스 메소드

 

메소드

설명

static void arraycopy(Object source, int sourceStart, Object target, int targetStart, int size)

배열을 복사한다. source와 target은 복사된 배열의 객체명이고, sourceStart와 targetStart는 복사가 시작될 위치, size는 복사될 배열의 크기이다.

static long currentTimeMills()

1970년 1월 1일 자정부터 현재까지의 시간을 밀리 초로 반환

static void exit(int exitCode)

현재 수행 중인 응용 프로그램을 종료한다. exitCode에 따라 메시지를 나타낼수 있다. exitCode 0은 일반적인 종료를 의미한다.

static Properties getProperties()

현재 시스템 프로퍼티를 반환한다.

static String getProperty(String key)

지정된 키에 의해 나타는 시스템 프로퍼티를 반환한다.

 

 

■ System클래스를 사용하여 시스템 프로퍼티를 확인하는 소스 코드

package co.kr.Test;

 

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

 

public class ShowSystemProperties {
 
    public static void main(String[] args) {
  
        Properties prop = new Properties();
        Enumeration<?> enume = null;
  
        prop = System.getProperties();
        enume = prop.propertyNames();
  
        StringBuffer sb = new StringBuffer();
  
        while ( enume.hasMoreElements() ) {
            String key = (String) enume.nextElement();
            sb.append(key + ": " + prop.getProperty(key) + "\n");
        }
  
        System.out.print(sb);
    }
 
}

  

위 코드의 결과는 아래와 같다.

 

java.runtime.name: Java(TM) SE Runtime Environment
sun.boot.library.path: C:\Java\jre6\bin
java.vm.version: 16.3-b01
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:
java.vm.specification.name: Java Virtual Machine Specification
user.dir:
java.runtime.version: 1.6.0_20-b02
java.awt.graphicsenv: sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs: C:\Java\jre6\lib\endorsed
os.arch: x86
java.io.tmpdir:
line.separator:

java.vm.specification.vendor: Sun Microsystems Inc.
user.variant:
os.name: Windows 7
sun.jnu.encoding: MS949
java.library.path: C:\Java\jre6bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;

C:\Windows;C:/Java/jre6/bin/client;
java.specification.name: Java Platform API Specification
java.class.version: 50.0
sun.management.compiler: HotSpot Client Compiler
os.version: 6.1
user.home:
user.timezone:
java.awt.printerjob: sun.awt.windows.WPrinterJob
file.encoding: UTF-8
java.specification.version: 1.6
user.name:
java.class.path: D:\Projects\projects\Example\bin
java.vm.specification.version: 1.0
sun.arch.data.model:
java.home: C:\Java\jre6
java.specification.vendor: Sun Microsystems Inc.
user.language: ko
awt.toolkit: sun.awt.windows.WToolkit
java.vm.info: mixed mode, sharing
java.version: 1.6.0_20
java.ext.dirs: C:\Java\jre6\lib\ext;C:\Windows\Sun\Java\lib\ext
sun.boot.class.path: C:\Java\jre6\lib\resources.jar;C:\Java\jre6\lib\rt.jar;C:\Java\jre6

\lib\sunrsasign.jar;C:\Java\jre6\lib\jsse.jar;C:\Java\jre6\lib\jce.jar;C:\Java\jre6

\lib\charsets.jar;C:\Java\jre6\classes
java.vendor: Sun Microsystems Inc.
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