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
'자바(Java) > JAVA 2SE' 카테고리의 다른 글
자바의 문자열을 나타내는 String 클래스 (0) | 2009.08.13 |
---|---|
Class - 실행중인 클래스 객체 (0) | 2009.08.13 |
java.lang.Object - 자바 최상위 클래스 (0) | 2009.08.13 |
Thread(쓰레드) 사용 설명 (0) | 2009.02.23 |
Telnet 프로그램 (0) | 2009.02.03 |