Java Runtimeクラスの基本的な使用
1735 ワード
公式サイトAPI:
https://docs.oracle.com/javase/8/docs/api/java/lang/Runtime.html
@Test
public void test2() throws Exception {
// 1.getRuntime: Runtime
Runtime rt = Runtime.getRuntime();
/*
* 2.addShutdownHook:
* ,System.exit(), , JVM , :
* kill pid
*/
Thread thread = new Thread(new Runnable() {
public void run() {
System.out.println(" A");
};
});
rt.addShutdownHook(thread);
// 3.availableProcessors: Java
int availableProcessors = rt.availableProcessors();
System.out.println("Java :" + availableProcessors);
// 4.exec: windows
Process exec = rt.exec("javac");
// 4.1 Process()
// waitFor = exec.waitFor();// ,
// exec.getErrorStream();// 。
// exec.getInputStream();// 。
// exec.getOutputStream();// 。
// exec.isAlive();// Process 。
// exec.exitValue();//
// exec.waitFor();// , , Process , 。
long freeMemory = rt.freeMemory();// ,
System.out.println(" :" + freeMemory);
rt.gc();// ,
// rt.halt(0);// Java 。
// rt.exit(0);// Java ,state = 0 1
long maxMemory = rt.maxMemory();// Java 。
System.out.println(" :" + maxMemory);
rt.removeShutdownHook(thread);// 。
rt.totalMemory();// Java 。
rt.traceInstructions(false);// / 。
rt.traceMethodCalls(false);// / 。
rt.runFinalization();//
}