프로그래밍 언어/JAVA

[Tips] 자바에서 Runtime 클래스

투칼론 2021. 12. 20. 00:23
반응형

모든 자바 애플리케이션은 애플리케이션이 수행 중인 환경과 인터페이스 할 수 있도록 Runtime 클래스의 단일 인스턴스를 가지고 있다. 현재 런타임(runtime)은 getRuntime() 메소드를 통해 얻어지고, 자체적으로 생성할 수는 없다.

 

예) Runtime  rt = Runtime.getRuntime();

 

1. Runtime 클래스에서 주로 사용되는 메소드

 

exec(String cmd) : 별도 프로세스로 명령어(cmd)를 실행함

exit(int status) : JVM을 종료함

- gc() : GC(가비지 콜렉션)을 실행함

 

- maxMemory() : JVM이 할당하여 사용할 수 있는 최대 메모리 양을 리턴함 (JVM 옵션에서 -Xms 값)

- totalMemory() : JVM이 사용하고 있는 전체 메모리를 리턴함(사용하기 위해 할당해놓은 메모리)

freeMemory() : JVM의 메모리 free 양(단위: 바이트)을 리턴함

 

 

2. 사용 예시

Runtime rt = Runtime.getRuntime();

long used_mem = rt.totalMemory() - rt.freeMemory();  // 힙메모리 사용량 계산

rt.gc();  // GC 실행
rt.exec(calc.exe);  // 계산기 실행

rt.exit(-1);  // JVM을 종료함