JavaTM Platform
Standard Ed. 6

java.lang
클래스 System

java.lang.Object 
  상위를 확장 java.lang.System


public final class System
extends Object

System 클래스에는 유용한 클래스 필드 및 메소드가 있습니다. 인스턴스화할 수 없습니다.

System 클래스에 의해 얻을 수 있는 기능에는, 표준 입력, 표준 출력, 및 에러 출력 스트림, 외부적으로 정의된 프로퍼티 및 환경 변수에의 액세스, 파일 및 라이브러리의 로딩 방법, 배열의 일부를 재빠르게 카피하는 유틸리티 메소드가 있습니다.

도입된 버젼:
JDK1. 0

필드의 개요
static PrintStream err
           「표준」에러 출력 스트림입니다.
static InputStream in
           「표준」입력 스트림입니다.
static PrintStream out
           「표준」출력 스트림입니다.
 
메소드의 개요
static void arraycopy (Object  src, int srcPos, Object  dest, int destPos, int length)
          지정 위치에서 개시하는 지정 소스 배열로부터, 전송처 배열의 지정 위치에 배열을 카피합니다.
static String clearProperty (String  key)
          지정된 키에 의해 나타난 시스템 프로퍼티을 삭제합니다.
static Console console ()
          현재의 Java 가상 머신에 관련한 일의 Console 객체가 있는 경우에, 그것을 돌려줍니다.
static long currentTimeMillis ()
          밀리 세컨드로 나타내지는 현재의 시간을 돌려줍니다.
static void exit (int status)
          현재 실행하고 있는 Java 가상 머신을 종료합니다.
static void gc ()
          가비지 컬렉터를 실행합니다.
static Map <String ,String > getenv ()
          현재의 시스템 환경의 변경할 수 없는 캐릭터 라인 맵의 뷰를 돌려줍니다.
static String getenv (String  name)
          지정된 환경 변수의 값을 가져옵니다.
static Properties getProperties ()
          현재의 시스템 프로퍼티을 결정합니다.
static String getProperty (String  key)
          지정된 키에 의해 나타나는 시스템 프로퍼티을 가져옵니다.
static String getProperty (String  key, String  def)
          지정된 키에 의해 나타나는 시스템 프로퍼티을 가져옵니다.
static SecurityManager getSecurityManager ()
          system security 인터페이스를 가져옵니다.
static int identityHashCode (Object  x)
          지정된 객체의 클래스가 hashCode()를 오버라이드(override) 하고 있을지 어떨지에 관계없이, 디폴트의 hashCode() 메소드에 의해 반환되는 것과 같은, 지정된 객체의 해시 코드를 돌려줍니다.
static Channel inheritedChannel ()
          Java 가상 머신을 작성한 엔티티로부터 상속된 채널을 돌려줍니다.
static void load (String  filename)
          지정된 파일명을 가지는 코드 파일을, 다이나믹 라이브러리로서 로컬 파일 시스템으로부터 로드합니다.
static void loadLibrary (String  libname)
          인수 libname 에 의해 지정되는 시스템 라이브러리를 로드합니다.
static String mapLibraryName (String  libname)
          라이브러리명을, 네이티브 라이브러리를 나타내는 플랫폼 의존의 캐릭터 라인에 매핑 합니다.
static long nanoTime ()
          이용 가능해도 와도 정확한 시스템 타이머-의 현재의 값을 나노초단위로 돌려줍니다.
static void runFinalization ()
          finalize를 보류하고 있는 객체의 finalize메소드를 실행합니다.
static void runFinalizersOnExit (boolean value)
          추천 되고 있지 않습니다.  이 메소드는 본질적으로 안전하지는 않습니다. 파이나라이자가 라이브 객체에 대해서 불려 가는 결과가 될 가능성이 있어, 그 때 다른 thread가 그러한 객체를 병행해 조작하고 있으면(자), 동작이 이상하게 되는지, 데드락이 발생합니다.
static void setErr (PrintStream  err)
           「표준」에러 출력 스트림을 할당다시 합니다.
static void setIn (InputStream  in)
           「표준」입력 스트림을 할당다시 합니다.
static void setOut (PrintStream  out)
           「표준」출력 스트림을 할당다시 합니다.
static void setProperties (Properties  props)
          시스템 프로퍼티을 인수 Properties 로 설정합니다.
static String setProperty (String  key, String  value)
          지정된 키에 의해 나타나는 시스템 프로퍼티을 설정합니다.
static void setSecurityManager (SecurityManager  s)
          system security를 설정합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

in

public static final InputStream  in
「표준」입력 스트림입니다. 이 스트림은 벌써 열려 있어, 입력 데이터의 공급이 가능합니다. 일반적으로, 이 스트림은 키보드 입력, 또는 호스트 환경이나 사용자에 의해 지정되는 그 외의 입력 소스와 일치하고 있습니다.


out

public static final PrintStream  out
「표준」출력 스트림입니다. 이 스트림은 벌써 열려 있어, 출력 데이터의 수취가 가능합니다. 일반적으로, 이 스트림은 디스플레이 출력, 또는 호스트 환경이나 사용자에 의해 지정되는 출력처의 출력과 일치합니다.  

단순한 스탠드얼론의 Java 어플리케이션에 대해, 출력 데이터의 행을 기입하는 일반적인 방법은 이하대로입니다.

     System.out.println(data)
 

PrintStream 클래스의 println 메소드를 참조해 주세요.

관련 항목:
PrintStream.println() , PrintStream.println(boolean) , PrintStream.println(char) , PrintStream.println(char[]) , PrintStream.println(double) , PrintStream.println(float) , PrintStream.println(int) , PrintStream.println(long) , PrintStream.println(java.lang.Object) , PrintStream.println(java.lang.String)

err

public static final PrintStream  err
「표준」에러 출력 스트림입니다. 이 스트림은 벌써 열려 있어, 출력 데이터의 수취가 가능합니다.  

일반적으로, 이 스트림은 디스플레이 출력, 또는 호스트 환경이나 사용자에 의해 지정되는 출력처의 출력과 일치합니다. 주된 출력 스트림인 변수 out 치가, 일반적으로 계속적으로는 감시되어 있지 않은 파일 또는 그 외의 전송 먼저 리다이렉트(redirect) 하고 있는 경우에서도, 사용자에게 주의를 유발 (prompt)하기 위한 에러 메세지 또는 그 외의 정보를 표시하기 위해서, 통례 이 출력 스트림이 사용됩니다. 「표준」입력 스트림을 할당다시 합니다.

메소드의 상세

setIn

public static void setIn(InputStream  in)
「표준」입력 스트림을 할당다시 합니다.

시큐리티 매니저가 존재하는 경우는, 표준 입력 스트림을 할당다시 해도 좋은지 어떤지를 확인하기 위해서,RuntimePermission("setIO") 액세스권을 사용해 checkPermission 메소드가 불려 갑니다.  

파라미터:
in - 새로운 표준 입력 스트림
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 checkPermission 메소드가 표준 입력 스트림의 재할인 맞히고를 허가하지 않는 경우
도입된 버젼:
JDK1. 1
관련 항목:
SecurityManager.checkPermission(java.security.Permission) , RuntimePermission

setOut

public static void setOut(PrintStream  out)
「표준」출력 스트림을 할당다시 합니다.

시큐리티 매니저가 존재하는 경우는, 표준 출력 스트림을 할당다시 해도 좋은지 어떤지를 확인하기 위해서,RuntimePermission("setIO") 액세스권을 사용해 checkPermission 메소드가 불려 갑니다.

파라미터:
out - 새로운 표준 출력 스트림
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 checkPermission 메소드가 표준 출력 스트림의 재할인 맞히고를 허가하지 않는 경우
도입된 버젼:
JDK1. 1
관련 항목:
SecurityManager.checkPermission(java.security.Permission) , RuntimePermission

setErr

public static void setErr(PrintStream  err)
「표준」에러 출력 스트림을 할당다시 합니다.

시큐리티 매니저가 존재하는 경우는, 표준 에러 출력 스트림을 할당다시 해도 좋은지 어떤지를 확인하기 위해서,RuntimePermission("setIO") 액세스권을 사용해 checkPermission 메소드가 불려 갑니다.

파라미터:
err - 새로운 표준 에러 출력 스트림
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 checkPermission 메소드가 표준 에러 출력 스트림의 재할인 맞히고를 허가하지 않는 경우
도입된 버젼:
JDK1. 1
관련 항목:
SecurityManager.checkPermission(java.security.Permission) , RuntimePermission

console

public static Console  console()
현재의 Java 가상 머신에 관련한 일의 Console 객체가 있는 경우에, 그것을 돌려줍니다.

반환값:
시스템 콘솔 (존재하는 경우). 그렇지 않은 경우는 null
도입된 버젼:
1.6

inheritedChannel

public static Channel  inheritedChannel()
                                throws IOException 
Java 가상 머신을 작성한 엔티티로부터 상속된 채널을 돌려줍니다.

이 메소드는, 시스템 전체의 디폴트 SelectorProvider 객체의 inheritedChannel 메소드를 호출하는 것에 의해 취득한 채널을 돌려줍니다.

이 메소드는,inheritedChannel 로 정의되고 있는 네트워크 지향의 채널에 가세해, 장래 다른 종류의 채널을 돌려줄 가능성이 있습니다.

반환값:
상속된 채널 (존재하는 경우). 그렇지 않은 경우는 null
예외:
IOException - 입출력 에러가 발생했을 경우
SecurityException - 시큐리티 매니저가 인스톨 되고 있어, 채널에의 액세스가 허가되어 있지 않은 경우
도입된 버젼:
1.5

setSecurityManager

public static void setSecurityManager(SecurityManager  s)
system security를 설정합니다.

시큐리티 매니저가 벌써 인스톨 되고 있는 경우, 이 메소드는, 최초로 RuntimePermission("setSecurityManager") 액세스권을 사용해 시큐리티 매니저의 checkPermission 메소드를 호출하는 것으로, 기존의 시큐리티 매니저를 치환해도 괜찮은지 어떤지를 확인합니다. 그 결과,SecurityException 가 throw 되는 일이 있습니다.

그렇지 않은 경우는, 인수를 현재의 시큐리티 매니저로 설정합니다. 인수가 null 이며, 시큐리티 매니저가 설정되어 있지 않은 경우, 메소드는 아무것도 실시하지 않고 복귀합니다.

파라미터:
s - 시큐리티 매니저
예외:
SecurityException - 시큐리티 매니저가 벌써 설정되어 있어 시큐리티 매니저의 checkPermission 메소드가 시큐리티 매니저의 치환을 허가하지 않는 경우
관련 항목:
getSecurityManager() , SecurityManager.checkPermission(java.security.Permission) , RuntimePermission

getSecurityManager

public static SecurityManager  getSecurityManager()
system security 인터페이스를 가져옵니다.

반환값:
시큐리티 매니저가 벌써 현재의 어플리케이션으로 설정되어 있는 경우는, 시큐리티 매니저. 그렇지 않은 경우는 null
관련 항목:
setSecurityManager(java.lang.SecurityManager)

currentTimeMillis

public static long currentTimeMillis()
밀리 세컨드로 나타내지는 현재의 시간을 돌려줍니다. 반환값의 시간 단위는 밀리 세컨드입니다만, 값의 입도는 기본이 되는 operating system에 따라서 달라, 단위가 보다 커지는 경우가 있습니다. 예를 들어, 많은 operating system에서는, 시간을 10 밀리 세컨드의 단위로 계측 합니다.

「컴퓨터 시간」이라고 협정 세계시 (UTC)와의 사이에 발생하는 미묘한 상위에 대해서는,Date 클래스의 설명을 참조해 주세요.

반환값:
밀리 세컨드로 측정한, 현재 시각과 협정 세계시의 UTC 1970 년 1 월 1 일 오전 0 시와의 차이
관련 항목:
Date

nanoTime

public static long nanoTime()
이용 가능해도 와도 정확한 시스템 타이머-의 현재의 값을 나노초단위로 돌려줍니다.

이 메소드는, 경과시간을 측정하기 위해(때문에)인 만큼 사용할 수 있습니다. 시스템외의 개념이나 벽시계의 시각에 관련하고 있습니다. 반환되는 값은, 고정된 임의의 시간부터의 경과시간 (나노초)입니다. 장래적으로, 값이 부의 수가 될 가능성이 있습니다. 이 메소드는, 나노초단위의 정밀도를 제공합니다만, 반드시 나노초의 정확도가 아닙니다. 값의 변경 빈도는 보증되지 않습니다. 약 292 년 (263 나노초 )을 넘는 연속한 호출의 차이에서는, 수치의 오버플로우에 의해 경과시간이 올바르게 계산되지 않습니다.

예를 들어, 일부의 코드로 실행에 걸리는 시간을 측정하려면 , 다음과 같이 됩니다.

long startTime = System.nanoTime();
// ... the code being measured ...
long estimatedTime = System.nanoTime() - startTime;
 

반환값:
시스템 타이머-의 현재의 값 (나노초단위)
도입된 버젼:
1.5

arraycopy

public static void arraycopy(Object  src,
                             int srcPos,
                             Object  dest,
                             int destPos,
                             int length)
지정 위치에서 개시하는 지정 소스 배열로부터, 전송처 배열의 지정 위치에 배열을 카피합니다. 배열 요소의 서브 순서를,src 에 의해 참조되는 소스 배열로부터 dest 에 의해 참조되는 전송처 배열에 카피합니다. 카피되는 요소의 수는, 인수 length 와 일치합니다. 소스 배열의 srcPos 로부터 srcPos+length-1 까지의 위치에 있는 요소를, 전송처의 배열의 destPos 로부터 destPos+length-1 까지의 위치에 각각 카피합니다.  

인수 srcdest 가 같은 배열 객체인 경우, 우선 srcPos 로부터 srcPos+length-1 까지의 위치에 있는 요소를 일시 배열 length 의 요소에 카피해, 다음에 일시 배열의 내용을 전송처 배열의 destPos 로부터 destPos+length-1 에 카피합니다.  

destnull 의 경우는,NullPointerException 가 throw 됩니다.  

srcnull 의 경우는,NullPointerException 가 throw 되어 전송처 배열은 변경되지 않습니다.  

이하의 어떤 것인가의 경우는,ArrayStoreException 를 throw 해, 전송처를 수정하지 않습니다.

그렇지 않은 경우, 이하의 어떤 것인가가 true 이면 IndexOutOfBoundsException 를 throw 해, 전송처를 수정하지 않습니다.

그렇지 않은 경우,srcPos 로부터 srcPos+length-1 까지의 위치에 있는 소스 배열의 실제의 요소가, 대입 변환에 의해 전송처 배열의 요소형으로 변환할 수 없을 때는,ArrayStoreException 를 throw 합니다. 이 경우,k 를 길이보다 작고, 부의 수가 아닌 최소 정수형으로 해,src[srcPos+k] 를 전송처 배열의 요소형으로 변환할 수 없게 합니다. 예외를 throw 하는 경우,srcPos 로부터 srcPos+k-1 에 위치하는 소스 배열의 요소는 벌써 destPos 로부터 destPos+k-1 에 위치하는 전송처 배열에 카피되고 있습니다. 또, 전송처 배열의 그 외의 위치는 수정되고 있지 않습니다. 전술의 제약을 위해, 상기의 기술은 실제로는 양쪽 모두의 배열이 참조형의 요소형을 가지는 상황으로만 유효합니다.

파라미터:
src - 전송원배열
srcPos - 소스 배열의 개시 위치
dest - 전송처 배열
destPos - 전송처 데이터내의 개시 위치
length - 카피되는 배열 요소의 수
예외:
IndexOutOfBoundsException - 카피에 의해 배열의 경계를 넘은 데이터의 액세스가 생겼을 경우
ArrayStoreException - 형의 불일치에 의해, 배열 src 의 요소가 배열 dest 에 보존할 수 없었던 경우
NullPointerException - src 또는 destnull 의 경우

identityHashCode

public static int identityHashCode(Object  x)
지정된 객체의 클래스가 hashCode()를 오버라이드(override) 하고 있을지 어떨지에 관계없이, 디폴트의 hashCode() 메소드에 의해 반환되는 것과 같은, 지정된 객체의 해시 코드를 돌려줍니다. 참조 null 의 해시 코드는 제로입니다.

파라미터:
x - 해시 코드가 계산되는 객체
반환값:
해시 코드
도입된 버젼:
JDK1. 1

getProperties

public static Properties  getProperties()
현재의 시스템 프로퍼티을 결정합니다.  

우선, 시큐리티 매니저가 존재하는 경우는, 인수없이 checkPropertiesAccess 메소드를 호출합니다. 이것은 시큐리티 예외가 되는 경우가 있습니다.  

getProperty(String) 메소드에 의해 사용되는 시스템 프로퍼티의 현재세트가,Properties 객체로서 돌려주어집니다. 시스템 프로퍼티의 현재세트가 없는 경우, 시스템 프로퍼티세트를 우선 작성하고 나서 초기화합니다. 이 시스템 프로퍼티세트에는, 항상 다음의 키의 값이 포함됩니다.

대응하는 값의 설명
java.version Java Runtime Environment 의 버젼
java.vendor Java Runtime Environment 의 벤더
java.vendor.url Java 벤더의 URL
java.home Java 의 인스톨처 디렉토리
java.vm.specification.version Java 가상 머신의 스펙 버젼
java.vm.specification.vendor Java 가상 머신의 스펙 벤더
java.vm.specification.name Java 가상 머신의 스펙명
java.vm.version Java 가상 머신의 구현 버젼
java.vm.vendor Java 가상 머신의 구현 벤더
java.vm.name Java 가상 머신의 구현명
java.specification.version Java Runtime Environment 의 스펙 버젼
java.specification.vendor Java Runtime Environment 의 스펙의 벤더
java.specification.name Java Runtime Environment 의 스펙명
java.class.version Java 클래스의 형식의 버젼 번호
java.class.path Java 클래스 패스
java.library.path 라이브러리의 로드시에 검색하는 패스의 리스트
java.io.tmpdir 디폴트 임시 파일의 패스
java.compiler 사용하는 JIT 컴파일러의 이름
java.ext.dirs 확장 디렉토리의 패스
os.name operating system명
os.arch operating system의 아키텍쳐(architecture)
os.version operating system의 버젼
file.separator 파일 단락 문자 (UNIX 에서는 "/")
path.separator 패스 단락 문자 (UNIX 에서는 ":")
line.separator 행 단락 문자 (UNIX 에서는 "\n")
user.name 사용자의 어카운트명
user.home 사용자의 홈 디렉토리
user.dir 사용자의 현재의 작업 디렉토리

시스템 프로퍼티치내의 복수의 패스는, 플랫폼 고유의 패스 단락 문자로 단락지어집니다.  

시큐리티 매니저는,getProperties 오퍼레이션을 허가하지 않는 경우에서도,getProperty(String) 오퍼레이션을 허가하는 경우가 있습니다.

반환값:
시스템 프로퍼티
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 checkPropertiesAccess 메소드가 시스템 프로퍼티에의 액세스를 허가하지 않는 경우
관련 항목:
setProperties(java.util.Properties) , SecurityException , SecurityManager.checkPropertiesAccess() , Properties

setProperties

public static void setProperties(Properties  props)
시스템 프로퍼티을 인수 Properties 로 설정합니다.  

우선, 시큐리티 매니저가 존재하는 경우는, 인수없이 checkPropertiesAccess 메소드를 호출합니다. 이것은 시큐리티 예외가 되는 경우가 있습니다.  

인수는, 메소드 getProperty(String) 에 의해, 사용하는 시스템 프로퍼티의 현재세트가 됩니다. 인수가 null 의 경우, 시스템 프로퍼티의 현재세트는 그대로입니다.

파라미터:
props - 새로운 시스템 프로퍼티
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 checkPropertiesAccess 메소드가 시스템 프로퍼티에의 액세스를 허가하지 않는 경우
관련 항목:
getProperties() , Properties , SecurityException , SecurityManager.checkPropertiesAccess()

getProperty

public static String  getProperty(String  key)
지정된 키에 의해 나타나는 시스템 프로퍼티을 가져옵니다.  

시큐리티 매니저가 존재하는 경우는, 키를 인수로서 건네주어 checkPropertyAccess 메소드를 호출합니다. 그 결과, SecurityException 가 발생하는 일이 있습니다.  

시스템 프로퍼티의 현재세트가 없는 경우, 시스템 프로퍼티세트를 우선 작성해,getProperties 메소드와 같은 방법으로 초기화합니다.

파라미터:
key - 시스템 프로퍼티의 이름
반환값:
시스템 프로퍼티의 캐릭터 라인치. 그 키에 프로퍼티이 없는 경우는 null
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 checkPropertiesAccess 메소드가, 지정된 시스템 프로퍼티에의 액세스를 허가하지 않는 경우
NullPointerException - keynull 의 경우
IllegalArgumentException - key 가 빈 상태(empty)의 경우
관련 항목:
setProperty(java.lang.String, java.lang.String) , SecurityException , SecurityManager.checkPropertyAccess(java.lang.String) , getProperties()

getProperty

public static String  getProperty(String  key,
                                 String  def)
지정된 키에 의해 나타나는 시스템 프로퍼티을 가져옵니다.  

시큐리티 매니저가 존재하는 경우는,key 를 인수로서 건네주어 checkPropertyAccess 메소드를 호출합니다.  

시스템 프로퍼티의 현재세트가 없는 경우, 시스템 프로퍼티세트를 우선 작성해,getProperties 메소드와 같은 방법으로 초기화합니다.

파라미터:
key - 시스템 프로퍼티의 이름
def - 디폴트 값
반환값:
시스템 프로퍼티의 캐릭터 라인치. 그 키에 프로퍼티이 없는 경우는 디폴트 값
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 checkPropertiesAccess 메소드가, 지정된 시스템 프로퍼티에의 액세스를 허가하지 않는 경우
NullPointerException - keynull 의 경우
IllegalArgumentException - key 가 빈 상태(empty)의 경우
관련 항목:
setProperty(java.lang.String, java.lang.String) , SecurityManager.checkPropertyAccess(java.lang.String) , getProperties()

setProperty

public static String  setProperty(String  key,
                                 String  value)
지정된 키에 의해 나타나는 시스템 프로퍼티을 설정합니다.  

시큐리티 매니저가 존재하는 경우는,PropertyPermission(key, "write") 액세스권을 사용해 SecurityManager.checkPermission 메소드가 불려 갑니다. 이 결과, SecurityException 가 throw 되는 일이 있습니다. 예외가 throw 되지 않았던 경우는, 지정된 프로퍼티이 지정된 값으로 설정됩니다.  

파라미터:
key - 시스템 프로퍼티의 이름
value - 시스템 프로퍼티의 값
반환값:
시스템 프로퍼티의 이전의 값. 없는 경우는 null
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 checkPermission 메소드가, 지정된 프로퍼티의 설정을 허가하지 않는 경우
NullPointerException - key 또는 valuenull 의 경우
IllegalArgumentException - key 가 빈 상태(empty)의 경우
도입된 버젼:
1.2
관련 항목:
getProperty(java.lang.String) , getProperty(java.lang.String) , getProperty(java.lang.String, java.lang.String) , PropertyPermission , SecurityManager.checkPermission(java.security.Permission)

clearProperty

public static String  clearProperty(String  key)
지정된 키에 의해 나타난 시스템 프로퍼티을 삭제합니다.  

시큐리티 매니저가 존재하는 경우는,PropertyPermission(key, "write") 액세스권을 사용해 SecurityManager.checkPermission 메소드가 불려 갑니다. 이 결과, SecurityException 가 throw 되는 일이 있습니다. 예외가 throw 되지 않았던 경우는, 지정된 프로퍼티은 삭제됩니다.  

파라미터:
key - 삭제되는 시스템 프로퍼티의 이름
반환값:
시스템 프로퍼티의 이전의 캐릭터 라인치. 그 키에 프로퍼티이 없었던 경우는 null
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 checkPropertiesAccess 메소드가, 지정된 시스템 프로퍼티에의 액세스를 허가하지 않는 경우
NullPointerException - keynull 의 경우
IllegalArgumentException - key 가 빈 상태(empty)의 경우
도입된 버젼:
1.5
관련 항목:
getProperty(java.lang.String) , setProperty(java.lang.String, java.lang.String) , Properties , SecurityException , SecurityManager.checkPropertiesAccess()

getenv

public static String  getenv(String  name)
지정된 환경 변수의 값을 가져옵니다. 환경 변수는, 시스템 고유의 외부에 있는 이름 첨0 보다 작은 값입니다.

시큐리티 매니저가 존재하는 경우는,RuntimePermission ("getenv. "+name) 액세스권을 사용해 checkPermission 메소드가 불려 갑니다. 이 결과,SecurityException 가 throw 되는 일이 있습니다. 예외가 throw 되지 않는 경우, 변수 name 의 값이 돌려주어집니다.

「시스템 프로퍼티」과「환경 변수」 는, 이름과 값과의 사이에 개념적으로 맵 되고 있습니다. 양쪽 모두의 메카니즘을 사용해, 사용자 정의 정보를 Java 프로세스에 건네줄 수가 있습니다. 환경 변수는, 보다 글로벌인 효과를 미칩니다. 이것은, 프로세스에 의해 정의된 모든 자손에게 있어 환경 변수가 직접적인 Java 서브 프로세스 일 뿐만 아니라, 가시이기 때문입니다. 이것들은, 다른 operating system상에서 미묘하게 다른 시멘틱스 (대문자와 소문자를 구별하지 않는 등)를 가질 수가 있습니다. 이러한 이유로부터, 환경 변수는 의도하지 않는 부작용을 가질 가능성이 높아집니다. 가능한 경우는, 시스템 프로퍼티을 사용하는 것이 가장 적절합니다. 환경 변수는, 글로벌인 효과가 필요한 때나, 외부 시스템 인터페이스가 환경 변수 (PATH 등)를 필요로 할 때 사용할 필요가 있습니다.

UNIX 시스템에서는,name 의 알파벳의 대문자와 소문자는 구별됩니다만, Microsoft Windows 시스템에서는 일반적으로 구별되지 않습니다. 예를 들어,System.getenv("FOO"). equals(System.getenv("foo")) 라고 하는 표현은 Microsoft Windows 에서는 true 입니다.

파라미터:
name - 환경 변수의 이름
반환값:
변수의 캐릭터 라인치. 시스템 환경에서 변수를 정의하지 않는 경우는 null
예외:
NullPointerException - namenull 의 경우
SecurityException - 시큐리티 매니저가 존재해,checkPermission 메소드가 환경 변수 name 에의 액세스를 허가하지 않을 때
관련 항목:
getenv() , ProcessBuilder.environment()

getenv

public static Map <String ,String > getenv()
현재의 시스템 환경의 변경할 수 없는 캐릭터 라인 맵의 뷰를 돌려줍니다. 환경은, 이름으로부터 값에의 시스템 의존의 매핑이며, parent process로부터 child process에게 건네집니다.

시스템이 환경 변수를 지원하고 있지 않는 경우는, 빈 상태(empty)의 맵이 돌려주어집니다.

반환된 맵은, null 의 키나 값을 포함하지 않습니다. null 의 키나 값이 있을지 어떨지 쿼리를 실행하면(자),NullPointerException 가 throw 됩니다. String 형이 아닌 키나 값이 있을지 어떨지 쿼리를 실행하면(자),ClassCastException 가 throw 됩니다.

반환된 맵과 그 코레크션뷰는,Object.equals(java.lang.Object) 메소드와 Object.hashCode() 메소드의 범용 규약에 따르지 않을 가능성이 있습니다.

반환된 맵은, 일반적으로 모든 플랫폼에서 대문자와 소문자를 구별합니다.

시큐리티 매니저가 존재하는 경우는,RuntimePermission ("getenv. *") 액세스권을 사용해 checkPermission 메소드가 불려 갑니다. 이 결과,SecurityException 가 throw 되는 일이 있습니다.

Java 서브 프로세스에 정보를 건네주는 경우, 일반적으로 환경 변수보다시스템 프로퍼티이 추천 됩니다.

반환값:
변수명으로부터 값에의 맵으로서의 환경
예외:
SecurityException - 시큐리티 매니저가 존재해,checkPermission 메소드가 프로세스 환경에의 액세스를 허가하지 않을 때
도입된 버젼:
1.5
관련 항목:
getenv(String) , ProcessBuilder.environment()

exit

public static void exit(int status)
현재 실행하고 있는 Java 가상 머신을 종료합니다. 인수는 상태 코드로서 작용합니다. 통례, 제로 이외의 상태 코드는 이상종료(ABEND)를 나타냅니다.  

이 메소드는 Runtime 클래스의 exit 메소드를 호출합니다. 이 메소드는, 정상적으로 복귀할 것은 없습니다.  

System.exit(n) 의 호출의 동작은, 실제로는 다음의 호출과 같습니다.

 Runtime.getRuntime(). exit(n)
 

파라미터:
status - 종료의 상태
예외:
SecurityException - 시큐리티 매니저가 존재해, 그 checkExit 메소드가, 지정된 상태에서의 종료를 허가하지 않는 경우
관련 항목:
Runtime.exit(int)

gc

public static void gc()
가비지 컬렉터를 실행합니다.  

gc 메소드의 호출은, 현재 점유 하고 있는 메모리를 재차 신속히 이용하기 위해서, Java 가상 머신이 사용하지 않는 객체의 리사이클을 실행하는 것을 의미합니다. 메소드의 호출로부터 제어가 돌아오는 것은, Java 가상 머신이, 파기된 객체가 점유 하고 있던 스페이스를 최대한까지 회복 끝마쳤을 때입니다.  

System.gc() 의 호출의 동작은, 실제로는 다음의 호출과 같습니다.

 Runtime.getRuntime(). gc()
 

관련 항목:
Runtime.gc()

runFinalization

public static void runFinalization()
finalize를 보류하고 있는 객체의 finalize메소드를 실행합니다.  

이 메소드를 호출하면(자), Java 가상 머신이, 파기되고 있는 것을 알 수 있고 있어 finalize 메소드가 실행되어 있지 않은 객체에 대해서 finalize 메소드의 실행이 시행됩니다. 메소드의 호출로부터 제어가 돌아오는 것은, Java 가상 머신이, 모든 미처리의 finalize를 최대한까지 완료 끝마쳤을 때입니다.  

System.runFinalization() 의 호출의 동작은, 실제로는 다음의 호출과 같습니다.

 Runtime.getRuntime(). runFinalization()
 

관련 항목:
Runtime.runFinalization()

runFinalizersOnExit

@Deprecated 
public static void runFinalizersOnExit(boolean value)
추천 되고 있지 않습니다.  이 메소드는 본질적으로 안전하지는 않습니다. 파이나라이자가 라이브 객체에 대해서 불려 가는 결과가 될 가능성이 있어, 그 때 다른 thread가 그러한 객체를 병행해 조작하고 있으면(자), 동작이 이상하게 되는지, 데드락이 발생합니다.

종료시의 finalize를 유효 또는 무효로 합니다. 이것을 실행하는 것에 의해, 자동적으로 불려 가지 않은 파이나라이자를 가지는 모든 객체의 파이나라이자가 불려 가 Java Runtime 의 종료전에 실행되게 됩니다. 디폴트에서는 종료시의 finalize는 무효가 되어 있습니다.

시큐리티 매니저가 존재하는 경우는, 확실히 종료가 허가되도록(듯이), 최초로 인수를 0 으로서 checkExit 메소드가 불려 갑니다. 이 결과, SecurityException 가 throw 되는 일이 있습니다.

파라미터:
value - finalize를 유효하게 할까 무효로 하는지를 나타낸다
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 checkExit 메소드가 종료를 허가하지 않는 경우
도입된 버젼:
JDK1. 1
관련 항목:
Runtime.exit(int) , Runtime.gc() , SecurityManager.checkExit(int)

load

public static void load(String  filename)
지정된 파일명을 가지는 코드 파일을, 다이나믹 라이브러리로서 로컬 파일 시스템으로부터 로드합니다. filename 인수는 완전한 경로명이 아니면 안됩니다.  

System.load(name) 의 호출의 동작은, 실제로는 다음의 호출과 같습니다.

 Runtime.getRuntime(). load(name)
 

파라미터:
filename - 로드하는 파일
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 checkLink 메소드가, 지정된 다이나믹 라이브러리의 로드를 허가하지 않는 경우
UnsatisfiedLinkError - 파일이 존재하지 않는 경우
NullPointerException - filenamenull 의 경우
관련 항목:
Runtime.load(java.lang.String) , SecurityManager.checkLink(java.lang.String)

loadLibrary

public static void loadLibrary(String  libname)
인수 libname 에 의해 지정되는 시스템 라이브러리를 로드합니다. 라이브러리명이 실제의 시스템 라이브러리에 매핑 되는 방법은, 시스템에 따라서 다릅니다.  

System.loadLibrary(name) 의 호출의 동작은, 실제로는 다음의 호출과 같습니다.

 Runtime.getRuntime(). loadLibrary(name)
 

파라미터:
libname - 라이브러리의 이름
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 checkLink 메소드가, 지정된 다이나믹 라이브러리의 로드를 허가하지 않는 경우
UnsatisfiedLinkError - 라이브러리가 존재하지 않는 경우
NullPointerException - libnamenull 의 경우
관련 항목:
Runtime.loadLibrary(java.lang.String) , SecurityManager.checkLink(java.lang.String)

mapLibraryName

public static String  mapLibraryName(String  libname)
라이브러리명을, 네이티브 라이브러리를 나타내는 플랫폼 의존의 캐릭터 라인에 매핑 합니다.

파라미터:
libname - 라이브러리의 이름
반환값:
플랫폼 의존의 네이티브 라이브러리명
예외:
NullPointerException - libnamenull 의 경우
도입된 버젼:
1.2
관련 항목:
loadLibrary(java.lang.String) , ClassLoader.findLibrary(java.lang.String)

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.