Java java.lang 패키지의 Runtime 클래스
Runtime 클래스는 실행 환경을 객체화하기 위해서 사용한다. Runtime 객체를 이용해 현 운영체제 시스템간의 상호 작용이 가능하다. JVM(자바 머신)이 작동하는 시스템과의 인터페이스를 제공하며 자바 클래스가 아닌 운영체제 기반의 프로그램을 실행시키거나 운영체제에 대한 정보를 제공한다.
Runtime 주요 메소드
메소드 | 설명 |
---|---|
Process exec(String command) |
명령(command)을 실행시키고, 실행시킨 프로세스의 래퍼런스를 반환한다. |
static Runtime getRuntime() |
Runtime 객체의 레퍼런스를 반환한다. |
void exit(int status) |
상태 값(status) 반환하면서 JVM을 종료시킨다. |
long freeMemory() |
JVM이 사용 가능한 메모리 양(bytes)을 반환한다. |
long totalMemory() |
JVM이 사용하고 있는 전체 메모리를 반환한다. |
long maxMemory() |
JVM이 사용할 수 있는 최대 메모리 양을 반환한다. |
Runtime 예제
예제 1)
package com.devkuma.tutorial.java.lang;
public class RuntimeClass {
public static void main(String[] args) {
Runtime runtime = Runtime.getRuntime();
long totalMemory = runtime.totalMemory();
long freeMemory = runtime.freeMemory();
long usedMemory = totalMemory - freeMemory;
System.out.println("Total Memory : " + totalMemory);
System.out.println("Free Memory : " + freeMemory);
System.out.println("Used Memory : " + usedMemory);
}
}
실행 결과는 아래와 같다.
Total Memory : 128974848
Free Memory : 126929960
Used Memory : 2044888
예제 2) 아래 예제에서는 해당 OS의 코드만 작성하도록 한다. 모두 실행시키면 에러가 발생한다.
package com.devkuma.tutorial.javalang;
import java.io.IOException;
public class RuntimeClass1 {
public static void main(String[] args) {
Runtime runtime = Runtime.getRuntime();
// Mac인 경우 아래 명령어를 실행한다.
try {
runtime.exec("open /Applications/Contacts.app");
} catch (IOException e) {
System.err.println("Error executing Contacts.");
}
// linux인 경우 아래 명령어를 실행한다.
try {
runtime.exec("gedit");
} catch (IOException e) {
System.err.println("Error executing gedit.");
}
// windows인 경우 아래 명령어를 실행한다.
try {
runtime.exec("calc.exe");
} catch (IOException e) {
System.err.println("Error executing calc.");
}
}
}
실행을 하면 각 OS에 맞는 어플리케이션 프로그램이 실행이 될 것이다. 실행 결과는 생략한다.
참조
http://itmore.tistory.com/entry/Runtime-%ED%81%B4%EB%9E%98%EC%8A%A4
최종 수정 : 2021-08-27