JavaTM Platform
Standard Ed. 6

java.lang
클래스 Runtime

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


public class Runtime
extends Object

Java 어플리케이션은 모두,Runtime 클래스의 단일의 인스턴스를 가집니다. 이 클래스는, 어플리케이션과 어플리케이션 실행 환경과의 인터페이스가 됩니다. 현재의 실행시 객체는,getRuntime 메소드에 의해 취득할 수 있습니다.  

어플리케이션은, 이 클래스의 인스턴스를 독자적으로 생성할 수 없습니다.

도입된 버젼:
JDK1. 0
관련 항목:
getRuntime()

메소드의 개요
 void addShutdownHook (Thread  hook)
          새로운 가상 머신의 종료 훅을 등록합니다.
 int availableProcessors ()
          Java 가상 머신을 사용할 수 있는 프로세서의 수를 돌려줍니다.
 Process exec (String  command)
          지정된 캐릭터 라인 커멘드를, 독립한 프로세스로 실행합니다.
 Process exec (String [] cmdarray)
          지정된 커멘드와 인수를, 독립한 프로세스로 실행합니다.
 Process exec (String [] cmdarray, String [] envp)
          지정된 커멘드와 인수를, 지정된 환경을 가지는 독립한 프로세스로 실행합니다.
 Process exec (String [] cmdarray, String [] envp, File  dir)
          지정된 커멘드와 인수를, 지정된 환경과 작업 디렉토리를 가지는 독립한 프로세스로 실행합니다.
 Process exec (String  command, String [] envp)
          지정된 캐릭터 라인 커멘드를, 지정된 환경을 가지는 독립한 프로세스로 실행합니다.
 Process exec (String  command, String [] envp, File  dir)
          지정된 캐릭터 라인 커멘드를, 지정된 환경과 작업 디렉토리를 가지는 독립한 프로세스로 실행합니다.
 void exit (int status)
          현재 실행하고 있는 Java 가상 머신을, 종료 순서를 개시해 종료합니다.
 long freeMemory ()
          Java 가상 머신내의 빈메모리의 양을 돌려줍니다.
 void gc ()
          가비지 컬렉터를 실행합니다.
 InputStream getLocalizedInputStream (InputStream  in)
          추천 되고 있지 않습니다.  JDK 1. 1 에서는, 로컬인 인코딩의 바이트 스트림을 Unicode 의 문자 스트림로 변환하려면 ,InputStreamReader 클래스와 BufferedReader 클래스를 사용하는 (분)편이 적절합니다.
 OutputStream getLocalizedOutputStream (OutputStream  out)
          추천 되고 있지 않습니다.  JDK 1. 1 에서는, Unicode 의 문자 스트림을 로컬인 인코딩의 바이트 스트림로 변환하려면 ,OutputStreamWriter 클래스,BufferedWriter 클래스, 및 PrintWriter 클래스를 사용하는 (분)편이 적절합니다.
static Runtime getRuntime ()
          현재의 Java 어플리케이션에 관련한 Runtime 객체를 돌려줍니다.
 void halt (int status)
          현재 실행중의 Java 가상 머신을 강제 종료합니다.
 void load (String  filename)
          지정된 파일명을 다이나믹 라이브러리로서 로드합니다.
 void loadLibrary (String  libname)
          지정된 라이브러리명을 가지는 다이나믹 라이브러리를 로드합니다.
 long maxMemory ()
          Java 가상 머신이 사용을 시도하는 최대 메모리 용량을 돌려줍니다.
 boolean removeShutdownHook (Thread  hook)
          벌써 등록한 가상 머신의 종료 훅을 등록 해제합니다.
 void runFinalization ()
          finalize를 보류하고 있는 객체의 finalize메소드를 실행합니다.
static void runFinalizersOnExit (boolean value)
          추천 되고 있지 않습니다.  이 메소드는 본질적으로 안전하지는 않습니다. 파이나라이자가 라이브 객체에 대해서 불려 가는 결과가 될 가능성이 있어, 그 때 다른 thread가 그러한 객체를 병행해 조작하고 있으면(자), 동작이 이상하게 되는지, 데드락이 발생합니다.
 long totalMemory ()
          Java 가상 머신의 메모리의 총용량을 돌려줍니다.
 void traceInstructions (boolean on)
          명령의 트레이스를 유효 또는 무효로 합니다.
 void traceMethodCalls (boolean on)
          메소드 호출의 트레이스를 유효 또는 무효로 합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

메소드의 상세

getRuntime

public static Runtime  getRuntime()
현재의 Java 어플리케이션에 관련한 Runtime 객체를 돌려줍니다. Runtime 클래스의 메소드의 대부분은 인스턴스 메소드이며, 현재의 런타임 객체에 대응해 불려 가지 않으면 안됩니다.

반환값:
현재의 Java 어플리케이션에 관련한 Runtime 객체

exit

public void exit(int status)
현재 실행하고 있는 Java 가상 머신을, 종료 순서를 개시해 종료합니다. 이 메소드는 일반적으로은 복귀하지 않습니다. 인수는 상태 코드로서 작용합니다. 통례, 제로 이외의 상태 코드는 이상종료(ABEND)를 나타냅니다.

가상 머신의 종료 순서는 2 개의 단계로 구성됩니다. 제 1 단계에서는, 모든 등록을 마친종료 훅 은 (있는 경우), 특히 지정하고 있지 않는 순서로 기동해, 종료할 때까지 병행해 실행할 수가 있습니다. 제 2 단계에서는,종료시의 finalize 가 유효하게 되어 있는 경우에, 불려 가지 않은 모든 파이나라이자가 실행됩니다. 이것이 종료하면(자) 가상 머신은정지 합니다.

가상 머신이 종료 순서를 개시한 뒤에 이 메소드가 불려 가면(자), 종료 훅이 이 메소드를 실행하고 있는 경우는 무기한으로 블록 됩니다. 종료 훅이 벌써 실행되어 있어 종료시의 finalize가 유효하게 되어 있을 때는, 상태가 제로 이외의 경우는 가상 머신을 지정한 상태 코드로 정지해, 그렇지 않은 경우는 무기한으로 블록 합니다. 이 메소드를 호출하려면 ,

System.exit 메소드가 일반적이고 편리합니다.

파라미터:
status - 종료 상태. 통례, 제로 이외의 상태 코드는 이상종료(ABEND)를 나타낸다
예외:
SecurityException - 시큐리티 매니저가 존재할 경우에, 시큐리티 매니저의 checkExit 메소드가 지정된 상태에서의 종료를 허가하지 않는 경우
관련 항목:
SecurityException , SecurityManager.checkExit(int) , addShutdownHook(java.lang.Thread) , removeShutdownHook(java.lang.Thread) , runFinalizersOnExit(boolean) , halt(int)

addShutdownHook

public void addShutdownHook(Thread  hook)
새로운 가상 머신의 종료 훅을 등록합니다.

2 종류의 이벤트에 응답해 Java 가상 머신을 종료 합니다.

「종료 훅」은 초기화된 것만으로 기동하고 있지 않는 thread입니다. 가상 머신이 종료 순서를 개시하면(자), 모든 등록이 끝난 종료 훅을, 지정되어 있지 않은 순서로 기동해 병행해 실행합니다. 훅이 모두 종료하면(자), 종료시의 finalize가 유효한 경우는 모든 불려 가지 않은 파이나라이자를 실행합니다. 마지막으로, 가상 머신은 정지합니다. exit 를 호출해 종료이 개시되었을 경우는, demon가 아닌 thread와 같이, demon thread는 종료 순서의 사이, 실행을 계속합니다.

일단 종료 순서가 기동하면(자), 강제적으로 가상 머신을 정지시키는 halt 메소드를 호출했을 경우만 중지할 수 있습니다.

일단 종료 순서를 기동하면(자), 새로운 종료 훅을 등록하거나 이전에 등록한 훅의 등록을 해제하거나 할 수 없습니다. 이러한 오퍼레이션의 어떤 것인지를 실행하려고 하면(자),IllegalStateException 가 throw 됩니다.

종료 훅은 가상 머신의 라이프 사이클의 미묘한 시기에 기동하기 위해(때문에), 코딩 하는 경우는 조심할 필요가 있습니다. 특히, thread 세이프에 기입할 필요가 있어, 할 수 있는 한 데드락을 피할 필요가 있습니다. 종료 훅을 등록한 서비스를 그대로 받아들이지 않고, 종료이 진행중에 등록할 필요가 있습니다. AWT 이벤트발송쓰레드 등, thread 베이스의 그 외의 서비스를 사용하려고 하면(자), 데드락이 발생하는 일이 있습니다.

종료 훅은 신속히 종료할 필요도 있습니다. 프로그램이 exit 를 호출하면(자), 가상 머신은 즉시 종료 해 종료하는 것이라고 보여집니다. 가상 머신이 사용자 로그 오프 또는 시스템 종료으로 종료하면(자), 기본이 되는 operating system는 종료 또는 종료할 때까지의 일정시간을 줍니다. 따라서, 종료 훅중에 사용자와의 대화 처리를 하거나 장시간의 계산을 하는 것은 추천할 수 없습니다.

캐치되어 있지 않은 예외는 다른 thread와 같게, thread ThreadGroup 객체의 uncaughtException 메소드를 호출해 종료 훅으로 처리됩니다. 이 메소드의 디폴트 구현은 System.err 에의 예외 스택 트레이스를 출력해 thread를 정지합니다. 가상 머신의 종료 또는 정지는 하지 않습니다.

보기 드문 케이스로서 가상 머신이 「이상종료(ABEND)」하는 일이 있습니다. 즉, 종료이 정상적으로 행해지지 않고 실행이 중지되는 경우입니다. 이것은 가상 머신이 외부에서 정지되었을 경우에 일어납니다. 예를 들어, Unix 의 경우의 SIGKILL 시그널 또는, Microsoft Windows 의 경우의 TerminateProcess 의 호출이 그 예입니다. 가상 머신은, 예를 들어, 내부 데이터 구조의 파괴, 존재하지 않는 메모리에의 액세스등과 같이 네이티브 메소드가 실패했을 경우에도 이상종료(ABEND) 합니다. 가상 머신이 이상종료(ABEND) 하면(자) 종료 훅의 실행은 보증할 수 없습니다.

파라미터:
hook - 초기화는 되었지만 기동하고 있지 않는 Thread 객체
예외:
IllegalArgumentException - 지정한 훅이 이미 등록되어 있는 경우, 혹은 훅이 이미 실행중이든가 또는 실행이 완료했다고 판정되는 경우
IllegalStateException - 가상 머신이 이미 종료 진행중인 경우
SecurityException - 시큐리티 매니저가 존재해,RuntimePermission ("shutdownHooks") 를 거부했을 경우
도입된 버젼:
1.3
관련 항목:
removeShutdownHook(java.lang.Thread) , halt(int) , exit(int)

removeShutdownHook

public boolean removeShutdownHook(Thread  hook)
벌써 등록한 가상 머신의 종료 훅을 등록 해제합니다.

파라미터:
hook - 삭제하는 훅
반환값:
지정한 훅이 이미 등록되어 문제 없게 등록 해제되었을 경우는 true, 그렇지 않은 경우는 false
예외:
IllegalStateException - 가상 머신이 이미 종료 진행중인 경우
SecurityException - 시큐리티 매니저가 존재해,RuntimePermission ("shutdownHooks") 를 거부했을 경우
도입된 버젼:
1.3
관련 항목:
addShutdownHook(java.lang.Thread) , exit(int)

halt

public void halt(int status)
현재 실행중의 Java 가상 머신을 강제 종료합니다. 이 메소드는 일반적으로은 복귀하지 않습니다.

이 메소드의 사용에는 세심의 주의가 필요합니다. exit 메소드와는 달라, 이 메소드에서는 종료 훅을 기동하지 못하고, 종료시의 finalize가 유효한 경우는 불려 가지 않은 파이나라이자를 실행하지 않습니다. 벌써 종료 순서가 개시되고 있는 경우는, 이 메소드는 실행중의 종료 훅 또는 파이나라이자를 대기하지 않고 종료합니다.

파라미터:
status - 종료 상태. 통례, 제로 이외의 상태 코드는 이상종료(ABEND)를 나타낸다. exit (System.exit 와 동등) 메소드가 벌써 불려 가고 있는 경우는, 그 메소드에게 건네진 상태 코드를 오버라이드(override) 한다
예외:
SecurityException - 시큐리티 매니저가 존재할 경우에, 시큐리티 매니저의 checkExit 메소드가 지정된 상태에서의 종료를 허가하지 않는 경우
도입된 버젼:
1.3
관련 항목:
exit(int) , addShutdownHook(java.lang.Thread) , removeShutdownHook(java.lang.Thread)

runFinalizersOnExit

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

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

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

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

exec

public Process  exec(String  command)
             throws IOException 
지정된 캐릭터 라인 커멘드를, 독립한 프로세스로 실행합니다.

이것은, 편리한 메소드입니다. 이 메소드를 exec(command) 의 형식에서 호출했을 경우,exec (command, null, null) 의 호출과 같은 결과를 얻을 수 있습니다.

파라미터:
command - 지정된 시스템 커멘드
반환값:
서브 프로세스를 관리하기 위한 신규 Process 객체
예외:
SecurityException - 시큐리티 매니저가 존재해,checkExec 메소드가 서브 프로세스의 작성을 허가하지 않는 경우
IOException - 입출력 에러가 발생했을 경우
NullPointerException - commandnull 의 경우
IllegalArgumentException - command 가 빈 상태(empty)의 경우
관련 항목:
exec(String[], String[], File) , ProcessBuilder

exec

public Process  exec(String  command,
                    String [] envp)
             throws IOException 
지정된 캐릭터 라인 커멘드를, 지정된 환경을 가지는 독립한 프로세스로 실행합니다.

이것은, 편리한 메소드입니다. 이 메소드를 exec(command, envp) 의 형식에서 호출했을 경우,exec (command, envp, null) 의 호출과 같은 결과를 얻을 수 있습니다.

파라미터:
command - 지정된 시스템 커멘드
envp - 캐릭터 라인의 배열. 배열의 각 요소는,name=value 라고 하는 형식에서 환경 변수 설정을 보관 유지한다. 또는, 서브 프로세스가 현재의 프로세스의 환경을 상속하는 경우는 null
반환값:
서브 프로세스를 관리하기 위한 신규 Process 객체
예외:
SecurityException - 시큐리티 매니저가 존재해,checkExec 메소드가 서브 프로세스의 작성을 허가하지 않는 경우
IOException - 입출력 에러가 발생했을 경우
NullPointerException - commandnull 의 경우, 또는 envp 의 어떤 것인가의 요소가 null 의 경우
IllegalArgumentException - command 가 빈 상태(empty)의 경우
관련 항목:
exec(String[], String[], File) , ProcessBuilder

exec

public Process  exec(String  command,
                    String [] envp,
                    File  dir)
             throws IOException 
지정된 캐릭터 라인 커멘드를, 지정된 환경과 작업 디렉토리를 가지는 독립한 프로세스로 실행합니다.

이것은, 편리한 메소드입니다. 이 메소드를 exec(command, envp, dir) 의 형식에서 호출했을 경우,exec (cmdarray, envp, dir) 의 호출과 같은 결과를 얻을 수 있습니다. 여기서,cmdarray 는,command 에 있는 모든 토큰의 배열입니다.

보다 정확하게는,command 캐릭터 라인은 문자 카테고리가 더 이상 변경되는 일 없이,new StringTokenizer (command) 의 호출로 작성된 StringTokenizer 를 사용해 토큰에 분할됩니다. 토크나이자로 생성된 토큰은, 같은 순서로 신규 캐릭터 라인 배열의 cmdarray 에 배치됩니다.

파라미터:
command - 지정된 시스템 커멘드
envp - 캐릭터 라인의 배열. 배열의 각 요소는,name=value 라고 하는 형식에서 환경 변수 설정을 보관 유지한다. 또는, 서브 프로세스가 현재의 프로세스의 환경을 상속하는 경우는 null
dir - 서브 프로세스가 현재의 프로세스의 작업 디렉토리를 상속하는 경우는, 서브 프로세스의 작업 디렉토리, 또는 null
반환값:
서브 프로세스를 관리하기 위한 신규 Process 객체
예외:
SecurityException - 시큐리티 매니저가 존재해,checkExec 메소드가 서브 프로세스의 작성을 허가하지 않는 경우
IOException - 입출력 에러가 발생했을 경우
NullPointerException - commandnull 의 경우, 또는 envp 의 어떤 것인가의 요소가 null 의 경우
IllegalArgumentException - command 가 빈 상태(empty)의 경우
도입된 버젼:
1.3
관련 항목:
ProcessBuilder

exec

public Process  exec(String [] cmdarray)
             throws IOException 
지정된 커멘드와 인수를, 독립한 프로세스로 실행합니다.

이것은, 편리한 메소드입니다. 이 메소드를 exec(cmdarray) 의 형식에서 호출했을 경우,exec (cmdarray, null, null) 의 호출과 같은 결과를 얻을 수 있습니다.

파라미터:
cmdarray - 실행하는 커멘드와 인수를 포함한 배열
반환값:
서브 프로세스를 관리하기 위한 신규 Process 객체
예외:
SecurityException - 시큐리티 매니저가 존재해,checkExec 메소드가 서브 프로세스의 작성을 허가하지 않는 경우
IOException - 입출력 에러가 발생했을 경우
NullPointerException - cmdarraynull 의 경우, 또는 cmdarray 의 어떤 것인가의 요소가 null 의 경우
IndexOutOfBoundsException - cmdarray 가 길이가 0 의 빈 상태(empty)의 배열의 경우
관련 항목:
ProcessBuilder

exec

public Process  exec(String [] cmdarray,
                    String [] envp)
             throws IOException 
지정된 커멘드와 인수를, 지정된 환경을 가지는 독립한 프로세스로 실행합니다.

이것은, 편리한 메소드입니다. 이 메소드를 exec(cmdarray, envp) 의 형식에서 호출했을 경우,exec (cmdarray, envp, null) 의 호출과 같은 결과를 얻을 수 있습니다.

파라미터:
cmdarray - 실행하는 커멘드와 인수를 포함한 배열
envp - 캐릭터 라인의 배열. 배열의 각 요소는,name=value 라고 하는 형식에서 환경 변수 설정을 보관 유지한다. 또는, 서브 프로세스가 현재의 프로세스의 환경을 상속하는 경우는 null
반환값:
서브 프로세스를 관리하기 위한 신규 Process 객체
예외:
SecurityException - 시큐리티 매니저가 존재해,checkExec 메소드가 서브 프로세스의 작성을 허가하지 않는 경우
IOException - 입출력 에러가 발생했을 경우
NullPointerException - cmdarraynull 의 경우, 또는 cmdarray 의 요소의 어떤 것인가가 null 의 경우, 혹은 envp 의 요소의 어떤 것인가가 null 의 경우
IndexOutOfBoundsException - cmdarray 가 길이가 0 의 빈 상태(empty)의 배열의 경우
관련 항목:
ProcessBuilder

exec

public Process  exec(String [] cmdarray,
                    String [] envp,
                    File  dir)
             throws IOException 
지정된 커멘드와 인수를, 지정된 환경과 작업 디렉토리를 가지는 독립한 프로세스로 실행합니다.

커멘드행의 토큰을 나타내는 캐릭터 라인의 배열 cmdarray, 및 환경 변수의 설정을 나타내는 캐릭터 라인의 배열 envp 를 지정하면(자), 이 메소드는 지정된 커멘드를 실행하기 위한 새로운 프로세스를 작성합니다.

이 메소드는,cmdarray 가 유효한 operating system 커멘드인 것을 확인합니다. 어느 커멘드가 유효한가는 시스템 의존입니다만, 커멘드는 적어도 null 이외의 캐릭터 라인의 빈 상태(empty)이 아닌 리스트가 아니면 안됩니다.

envpnull 의 경우, 서브 프로세스는 현재의 프로세스의 환경 설정을 상속합니다.

현재,ProcessBuilder.start() 는, 변경된 환경을 가지는 프로세스를 기동하는 방법으로서 추천 되고 있습니다.

새로운 서브 프로세스의 작업 디렉토리는 dir 로 지정합니다. dirnull 의 경우는, 서브 프로세스는 현재의 프로세스의 현재의 작업 디렉토리를 상속합니다.

시큐리티 매니저가 존재하는 경우는,cmdarray 배열의 최초의 컴퍼넌트를 인수로서 사용해 checkExec 메소드가 불려 갑니다. 이 결과,SecurityException 가 throw 되는 일이 있습니다.

operating system 프로세스의 기동은 극히 시스템에 의존합니다. 발생할 가능성이 있는 불편은 다음과 같습니다.

이상의 케이스에서는, 예외가 throw 됩니다. 예외의 정확한 특성은 시스템에 의존합니다만, 이것은 항상 IOException 의 서브 클래스가 됩니다.

파라미터:
cmdarray - 실행하는 커멘드와 인수를 포함한 배열
envp - 캐릭터 라인의 배열. 배열의 각 요소는,name=value 라고 하는 형식에서 환경 변수 설정을 보관 유지한다. 또는, 서브 프로세스가 현재의 프로세스의 환경을 상속하는 경우는 null
dir - 서브 프로세스가 현재의 프로세스의 작업 디렉토리를 상속하는 경우는, 서브 프로세스의 작업 디렉토리, 또는 null
반환값:
서브 프로세스를 관리하기 위한 신규 Process 객체
예외:
SecurityException - 시큐리티 매니저가 존재해,checkExec 메소드가 서브 프로세스의 작성을 허가하지 않는 경우
IOException - 입출력 에러가 발생했을 경우
NullPointerException - cmdarraynull 의 경우, 또는 cmdarray 의 요소의 어떤 것인가가 null 의 경우, 혹은 envp 의 요소의 어떤 것인가가 null 의 경우
IndexOutOfBoundsException - cmdarray 가 길이가 0 의 빈 상태(empty)의 배열의 경우
도입된 버젼:
1.3
관련 항목:
ProcessBuilder

availableProcessors

public int availableProcessors()
Java 가상 머신을 사용할 수 있는 프로세서의 수를 돌려줍니다.

이 값은, 가상 머신의 특정의 호출동안에 변화할 가능성이 있습니다. 이 때문에, 이용 가능한 프로세서수에 영향을 받는 어플리케이션은, 이 프로퍼티을 가끔 폴링 해, 자원 사용법을 조정할 필요가 있습니다.

반환값:
가상 머신으로부터 이용 가능한 최대 프로세서수. 이 값이 1 보다 작아질 것은 없는
도입된 버젼:
1.4

freeMemory

public long freeMemory()
Java 가상 머신내의 빈메모리의 양을 돌려줍니다. gc 메소드를 호출하면(자),freeMemory 에 의해 반환되는 값이 증가하는 경우가 있습니다.

반환값:
장래 할당할 수 있는 객체에 이용 가능한 현재의 메모리의 총용량 (바이트 단위)

totalMemory

public long totalMemory()
Java 가상 머신의 메모리의 총용량을 돌려줍니다. 호스트의 환경에 따라서는, 이 메소드에 의해 반환되는 값이 시간과 함께 변화하는 경우가 있습니다.  

임의의 지정된 형태의 객체를 포함하는데 필요한 메모리 용량은, 구현에 따라서 다릅니다.

반환값:
현재 및 장래의 객체에 이용 가능한 현재의 메모리의 총용량 (바이트 단위)

maxMemory

public long maxMemory()
Java 가상 머신이 사용을 시도하는 최대 메모리 용량을 돌려줍니다. 고유의 제한이 존재하지 않는 경우, 값 Long.MAX_VALUE 가 돌려주어집니다.

반환값:
가상 머신이 사용을 시도하는 최대 메모리 용량 (단위는 바이트)
도입된 버젼:
1.4

gc

public void gc()
가비지 컬렉터를 실행합니다. 이 메소드를 호출하면(자), Java 가상 머신은 사용하고 있지 않는 객체를 리사이클해, 사용중의 메모리를 재빠르게 재사용 가능한 상태로 합니다. 메소드 호출로부터 제어가 되돌려진 시점에서, 가상 머신은 파기된 객체를 모두 재사용하도록(듯이) 최선을 다한 것이 됩니다.  

gc 라고 하는 메소드명은 「garbage collector」의 두자를 취한 것입니다. gc 가 명시적으로는 불려 가지 않았던 경우에서도, 가상 머신은 이 재사용 프로세스를 필요에 따라서 자동적으로, 다른 thread로 실행합니다.  

이 메소드를 호출하려면 ,System.gc() 메소드가 일반적이고 편리합니다.


runFinalization

public void runFinalization()
finalize를 보류하고 있는 객체의 finalize메소드를 실행합니다. 이 메소드를 호출하면(자), Java 가상 머신은, 파기되었음에도 불구하고 finalize 메소드가 실행되어 있지 않은 객체의 finalize 메소드를 실행하려고 합니다. 메소드 호출로부터 제어가 되돌려진 시점에서, 가상 머신은 모든 finalize를 완료하도록(듯이) 최선을 다한 것이 됩니다.  

runFinalization 메소드가 명시적으로는 불려 가지 않았던 경우에서도, 가상 머신은 이 finalize프로세스를 필요에 따라서 자동적으로, 다른 thread로 실행합니다.  

이 메소드를 호출하려면 ,System.runFinalization() 메소드가 일반적이고 편리합니다.

관련 항목:
Object.finalize()

traceInstructions

public void traceInstructions(boolean on)
명령의 트레이스를 유효 또는 무효로 합니다. boolean 인수가 true 인 경우, 이 메소드를 호출하면(자), Java 가상 머신은, 가상 머신내의 각 명령의 디버그 정보를 실행시에 출력합니다. 이 정보의 서식이나, 출력처가 되는 파일등의 출력 스트림은, 호스트 환경에 의해 다릅니다. 이 기능을 지원하지 않는 경우, 가상 머신은 요구를 무시하는 경우가 있습니다. 트레이스의 출력처는 시스템에 따라서 다릅니다.  

boolean 인수에 false 를 지정하면(자), 가상 머신은 명령의 상세 트레이스의 출력을 정지합니다.

파라미터:
on - 메소드의 트레이스를 실시하는 경우는 true, 이 기능을 무효로 하는 경우는 false

traceMethodCalls

public void traceMethodCalls(boolean on)
메소드 호출의 트레이스를 유효 또는 무효로 합니다. boolean 인수가 true 인 경우, 이 메소드를 호출하면(자), Java 가상 머신은, 가상 머신내의 각 메소드의 디버그 정보를 그 메소드 호출의 시점에서 출력합니다. 이 정보의 서식이나, 출력처가 되는 파일등의 출력 스트림은, 호스트 환경에 의해 다릅니다. 이 기능을 지원하지 않는 경우, 가상 머신은 요구를 무시하는 경우가 있습니다.  

인수를 false 로 해 이 메소드를 호출하면(자), 가상 머신은, 호출할 것의 디버그 정보의 출력을 정지합니다.

파라미터:
on - 메소드의 트레이스를 실시하는 경우는 true, 이 기능을 무효로 하는 경우는 false

load

public void load(String  filename)
지정된 파일명을 다이나믹 라이브러리로서 로드합니다. filename 인수는 완전한 경로명이 아니면 안됩니다 (예를 들어,Runtime.getRuntime(). load("/home/avh/lib/libX11.so");).  

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

이것은 loadLibrary(String) 메소드와 닮아 있습니다만, 라이브러리명은 아니고 일반적인 파일명을 인수로서 지정할 수 있기 (위해)때문에, native code로 쓰여진 임의의 파일이 로드 가능하게 됩니다.  

이 메소드를 호출하려면 ,System.load(String) 메소드가 일반적이고 편리합니다.

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

loadLibrary

public void loadLibrary(String  libname)
지정된 라이브러리명을 가지는 다이나믹 라이브러리를 로드합니다. native code가 쓰여져 있는 파일은, 로컬 파일 시스템의, 라이브러리 파일을 일반적으로의 방법으로 취득할 수 있는 장소에서 로드 됩니다. 이 프로세스의 자세한 것은, 구현에 따라서 다릅니다. 라이브러리명을 특정의 파일명에 대응 붙이는 처리는, 시스템 특유의 방법으로 행해집니다.  

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

이 메소드를 호출하려면 ,System.loadLibrary(String) 메소드가 일반적이고 편리합니다. 네이티브 메소드를 클래스의 구현으로 사용하는 경우, 표준적으로는, native code를 라이브러리 파일 (여기에서는, 설명상 LibFile 로 한다)에 넣고 나서, 클래스 선언에 다음의 static 초기화자를 넣습니다.

 static { System.loadLibrary("LibFile"); }
 
이렇게 하면, 클래스가 로드 및 초기화될 때, 네이티브 메소드에 필요한 native code의 구현도 똑같이 로드 됩니다.  

같은 라이브러리명을 지정해 이 메소드를 여러 차례 호출해도, 2 번째 이후의 호출은 무시됩니다.

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

getLocalizedInputStream

@Deprecated 
public InputStream  getLocalizedInputStream(InputStream  in)
추천 되고 있지 않습니다.  JDK 1. 1 에서는, 로컬인 인코딩의 바이트 스트림을 Unicode 의 문자 스트림로 변환하려면 ,InputStreamReader 클래스와 BufferedReader 클래스를 사용하는 (분)편이 적절합니다.

로컬라이즈 된 입력 스트림을 작성합니다. 이 메소드는 InputStream 를 받아, 로컬라이즈 되고 있는 이외는 인수의 스트림과 완전히 같은 InputStream 를 돌려줍니다. 로컬 캐릭터 세트의 문자를 스트림로부터 읽어들이려면 , 로컬 캐릭터 세트로부터 Unicode 에 자동적으로 변환합니다.  

인수로 지정한 스트림이 로컬라이즈가 끝난 상태인 경우는, 그대로 결과적으로 돌려주어집니다.

파라미터:
in - 로컬라이즈 하는 InputStream
반환값:
로컬라이즈 된 입력 스트림
관련 항목:
InputStream , BufferedReader.BufferedReader(java.io.Reader) , InputStreamReader.InputStreamReader(java.io.InputStream)

getLocalizedOutputStream

@Deprecated 
public OutputStream  getLocalizedOutputStream(OutputStream  out)
추천 되고 있지 않습니다.  JDK 1. 1 에서는, Unicode 의 문자 스트림을 로컬인 인코딩의 바이트 스트림로 변환하려면 ,OutputStreamWriter 클래스,BufferedWriter 클래스, 및 PrintWriter 클래스를 사용하는 (분)편이 적절합니다.

로컬라이즈 된 출력 스트림을 작성합니다. 이 메소드는 OutputStream 를 받아, 로컬라이즈 되고 있는 이외는 인수의 스트림과 완전히 같은 OutputStream 를 돌려줍니다. Unicode 를 스트림에 기입하려면 , Unicode 로부터 로컬 캐릭터 세트에 자동적으로 변환합니다.  

인수로 지정한 스트림이 로컬라이즈가 끝난 상태인 경우는, 그대로 결과적으로 돌려주어집니다.

파라미터:
out - 로컬라이즈 하는 OutputStream
반환값:
로컬라이즈 된 출력 스트림
관련 항목:
OutputStream , BufferedWriter.BufferedWriter(java.io.Writer) , OutputStreamWriter.OutputStreamWriter(java.io.OutputStream) , PrintWriter.PrintWriter(java.io.OutputStream)

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 도 참조해 주세요.