18,Runtime 클래스

1.개술
모든 jvm 이 시 작 될 때 실제 적 으로 runtime 인 스 턴 스 에 대응 합 니 다.실행 할 때 런 타임 류 는 실행 중인 환경 을 패키지 합 니 다.모든 자바 응용 프로그램 은 런 타임 류 인 스 턴 스 를 가지 고 있어 서 프로그램 이 실행 중인 환경 과 연결 할 수 있 습 니 다.
Runtime 클래스 는 자체 적 인 구조 방법 이 있 습 니 다.일반적으로 Runtime 대상 을 예화 할 수 없습니다.프로그램 도 자신의 Runtime 클래스 인 스 턴 스 를 만 들 수 없 지만 getRuntime 방법 을 통 해 현재 Runtime 이 실 행 될 때 대상 의 인용 을 얻 을 수 있 습 니 다.현재 Runtime 대상 의 인용 을 받 으 면 Runtime 대상 의 방법 으로 자바 가상 컴퓨터 의 상태 와 행 위 를 제어 할 수 있 습 니 다.
Applet 과 다른 신뢰 할 수 없 는 코드 가 Runtime 방법 을 호출 할 때 Security Exception 이상 을 일 으 킬 수 있 습 니 다.
2.API 미리 보기
addShutdown Hook(Thread hook)/새로운 가상 컴퓨터 를 등록 하여 연결 고 리 를 닫 습 니 다.
availableProcessors()/자바 가상 컴퓨터 에 사용 가능 한 프로세서 의 수 를 되 돌려 줍 니 다.
exec(String command)/단독 프로 세 스에 서 지정 한 문자열 명령 을 실행 합 니 다.
exec(String[]cmdarray)//단독 프로 세 스에 서 지정 한 명령 과 변 수 를 실행 합 니 다.
exec(String[]cmdarray,String[]envp)//지정 한 환경의 독립 프로 세 스에 서 지정 한 명령 과 변 수 를 실행 합 니 다.
exec(String[]cmdarray,String[]envp,File dir)//지정 한 환경 과 작업 디 렉 터 리 의 독립 프로 세 스에 서 지정 한 명령 과 변 수 를 실행 합 니 다.
exec(String command,String[]envp)//지정 한 환경의 단독 프로 세 스에 서 지정 한 문자열 명령 을 실행 합 니 다.
exec(String command,String[]envp,File dir)//지정 한 환경 과 작업 디 렉 터 리 가 있 는 독립 된 프로 세 스에 서 지정 한 문자열 명령 을 실행 합 니 다.
exit(int status)//가상 컴퓨터 를 시작 하 는 닫 기 시퀀스 를 통 해 현재 실행 중인 자바 가상 컴퓨터 를 종료 합 니 다.
freeMemory()//자바 가상 컴퓨터 의 남 은 메모리 양 을 되 돌려 줍 니 다.
gc()//쓰레기 수 거 기 를 실행 합 니 다.
getRuntime()//현재 자바 프로그램 과 관련 된 실행 대상 을 되 돌려 줍 니 다.
halt(int status)/현재 실행 중인 자바 가상 컴퓨터 를 강제로 종료 합 니 다.
load(String filename)/동적 라 이브 러 리 로 지정 한 파일 이름 을 불 러 옵 니 다.
loadLibrary(String libname)/지정 한 라 이브 러 리 이름 을 가 진 동적 라 이브 러 리 를 불 러 옵 니 다.
max Memory()/자바 가상 컴퓨터 가 사용 하려 는 최대 메모리 양 을 되 돌려 줍 니 다.
totalMemory()/자바 가상 컴퓨터 의 메모리 총량 을 되 돌려 줍 니 다.
traceInstructions(on)/사용/명령 추적 을 사용 하지 않 습 니 다.
traceMethodCalls(on)/사용/사용 하지 않 는 방법 으로 추적 을 호출 합 니 다.
removeShutdown Hook(Thread hook)/이전에 등 록 된 가상 컴퓨터 의 연결 을 끄 는 것 을 취소 합 니 다.
runFinalization()/finalization 을 걸 어 놓 은 모든 대상 의 종료 방법 을 실행 합 니 다.
InputStream getLocalizedInputStream(InputStream in)
//시간 이 지 났 습 니 다.JDK 1.1 부터 로 컬 인 코딩 바이트 흐름 을 유 니 코드 문자 흐름 으로 바 꾸 는 가장 좋 은 방법 은 InputStreamReader 와 BufferedReader 클래스 를 사용 하 는 것 입 니 다.
OutputStream getLocalizedOutputStream(OutputStream out)
//시간 이 지 났 습 니 다.JDK 1.1 부터 유 니 코드 문자 흐름 을 로 컬 인 코딩 바이트 흐름 으로 바 꾸 는 가장 좋 은 방법 은 Output Stream Writer,Buffered Writer,PrintWriter 류 를 사용 하 는 것 입 니 다.
runFinalizersOnExit(value)
//시간 이 지 났 습 니 다.이 방법 자 체 는 안전성 이 없습니다.사용 하고 있 는 대상 에 게 종료 방법 을 호출 할 수 있 으 며,다른 스 레 드 는 이 대상 을 조작 하고 있어 서 부정 확 한 행동 이나 잠 금 을 초래 할 수 있 습 니 다.
3.Runtime 응용
3.1 Runtime 과 프로 세 스
Runtime 류 는 exec()방법 을 통 해 이 컴퓨터 프로그램 을 직접 실행 할 수 있 습 니 다.
예시:
package com.ares.runtimedemo;

public class RuntimeDemo {
	public static void main(String[] args) throws Exception {
		Runtime run = Runtime.getRuntime(); //     
		run.exec("freecell.exe");//     
	}

}

Runtime 류 는 destroy()방법 을 통 해 이 컴퓨터 의 실행 프로그램 을 소각 할 수 있 습 니 다.
예시:
package org.lxh.runtimedemo;
public class RuntimeDemo02 {
	public static void main(String[] args) throws Exception {
		Runtime run = Runtime.getRuntime(); //     
		Process pro = run.exec("freecell.exe");//     
		Thread.sleep(2000);
		pro.destroy(); //   
	}

}

3.2 Runtime 시스템 자원 획득
maxMemory(),totalMemory(),freeMemory()방법 으로 시스템 자원 획득
그리고 gc()방법 을 통 해 메모리 쓰레기 를 회수 할 수 있 습 니 다.
예시:
package org.ares.runtimedemo;

public class RuntimeDemo {
	public static void main(String[] args) throws Exception {
		Runtime run = Runtime.getRuntime(); //     
		System.out.println("**        :" + run.maxMemory());
		System.out.println("**       :" + run.totalMemory());
		System.out.println("           :" + run.freeMemory());
		String str = "";
		for (int i = 0; i < 10000; i++) {
			str += i; //         
		}
		System.out.println("           :" + run.freeMemory());
		run.gc(); //       
		System.out.println("              :" + run.freeMemory());
	}
}

참고:http://www.cnblogs.com/lixiaolun/p/4320754.html
20150428
JAVA 학습 노트 시리즈
--------------------------------------------
                    연락처
--------------------------------------------
        Weibo: ARESXIONG
        E-Mail: [email protected]
------------------------------------------------

좋은 웹페이지 즐겨찾기