Java中的常用類:Runtime類

	**Runtime 類**用於表示 Java 虛擬機運行時的狀態,用於封裝 Java 虛擬機進程。每次使用 Java 命令啓動 Java 虛擬機時都會對應一個 Runtime 實例。並且只有一個實例,應用程序會通過該實例與其運行時環境相連。應用程序不能創建自己的 Runtime 實例,若想在程序中獲得一個 Runtime 實例,可以通過 **getRuntime()** 方法獲取與之相關的 Runtime 對象。
Runtime runtime = Runtime.getRuntime();

由於 Runtime 類封裝了 Java虛擬機進程,所以,可以通過該類的實例對象來獲取當前虛擬機的相關信息。

package com.wang.demo;

public class RuntimeDemo1 {
    public static void main(String[] args) {
        //獲取 Java程序關聯的運行時對象
        Runtime runtime = Runtime.getRuntime();
        System.out.println("空閒內存大小:" + runtime.freeMemory() / 1024 / 1024 + "M");
        System.out.println("處理器的個數:" + runtime.availableProcessors() + "個");
        System.out.println("最大可用內存:" + runtime.maxMemory() / 1024 / 1024 + "M");
    }
}
----------------------------------------------------------------------------------
    結果:空閒內存大小:118M
         處理器的個數:8個
         最大可用內存:1787M

通過 Runtime.getRuntime() 方法創建一個 Runtime 的實例對象,並且分別調用該對象的 freeMemory() 方法,availableProcessors() 方法和 maxMemory() 方法,將當前虛擬機的空閒內存數,處理器個數和最大可用內存數的信息打印出來。注意,最大可用內存數空閒內存數 都是以字節爲單位計算的,以上代碼中,已經將結果換算成了以 爲單位。

Runtime 類中提供了一個 exec() 方法,用於執行一個 DOS命令 ,可以實現與在命令行窗口中輸入 DOS命令一樣的效果。可以試一試,打開記事本。

package com.wang.demo;

import java.io.IOException;

public class RuntimeDemo2 {
    public static void main(String[] args) {
        //創建 Runtime 實例對象
        Runtime runtime = Runtime.getRuntime();
        try {
            //調用 exec() 方法
            runtime.exec("notepad.exe");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Runtime 類的 exec() 方法將返回一個 Process 對象 ,該對象表示操作系統的一個進程,這裏是 notepad.exe 進程,通過 Process 對象可以對產生的新進程進行管理,如關閉此進程,調用 destroy() 方法既可以。

打開記事本5秒後關閉

package com.wang.demo;

import java.io.IOException;

public class RuntimeDemo3 {
    public static void main(String[] args) throws IOException, InterruptedException {
        //創建一個 Runtime 實例對象
        Runtime runtime = Runtime.getRuntime();

        //得到表示進程的 Process 對象
        Process process = runtime.exec("notepad.exe");

        //程序休眠 5秒
        Thread.sleep(5000);

        //關閉進程
        process.destroy();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章