2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

Java虛擬機中獲得Runtime實例的方法是什么?

更新時間:2021-07-05 來源:黑馬程序員 瀏覽量:

IT培訓班


Runtime類用于表示Java虛擬機運行時的狀態,它用于封裝Java虛擬機進程。每次使用“java”命令啟動Java虛擬機時都會對應一個Runtime實例,并且只有一個實例,應用程序會通過該實例與其運行時的環境相連。應用程序不能創建自己的Runtime實例,若想在程序中獲得一個Runtime實例,可以通過getRuntime()方法獲取與之相關的Runtime對象,具體方式如下:
Runtime run = Runtime.getRuntime();
由于Runtime類封裝了Java虛擬機進程,因此,可以通過該類的實例對象來獲取當前虛擬機的相關信息。接下來通過一個案例來演示Runtime類的使用,如文件1所示。

文件1 Example12.java

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

運行結果如圖1所示。

創建Runtime實例

圖1 運行結果

文件1中,通過“Runtime.getRuntime();”方法創建了一個Runtime的實例對象,并分別調用該對象的availableProcessors()方法、freeMemory()方法和maxMemory()方法,將當前虛擬機的處理器個數、空閑內存大小和可用最大內存大小的信息打印出來。

需要注意的是,由于每臺計算機的配置和性能不同,該文件的打印結果也會有所不同。另外,空閑內存大小和可用最大內存大小都是以字節為單位計算的,文件1中程序的運行結果已經換算成了以兆(M)為單位的值。

Runtime類中提供了一個exec()方法,該方法用于執行一個DOS命令,從而實現和在命令行窗口中輸入DOS命令同樣的效果。例如,可以通過運行“notepad.exe”命令打開一個Windows自帶的記事本,程序代碼如文件2所示。

文件2 Example13.java

    import java.io.IOException;
     public class Example13 {
         public static void main(String[] args) throws IOException {
             Runtime rt = Runtime.getRuntime(); // 創建Runtime實例對象
             rt.exec("notepad.exe");              // 調用exec()方法
         }
     }

文件2中,調用了Runtime對象的exec()方法,并將系統命令“notepad.exe”作為參數傳遞給方法。運行程序后會在桌面上打開一個記事本,如圖2所示。

創建Runtime實例

圖2 記事本

此時,會在Windows系統中產生一個新的進程notepad.exe,可以通過任務管理器進行觀察,如圖3所示。

創建Runtime實例

圖3 任務管理器

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

接下來通過一個案例來實現打開的記事本并在3秒后自動關閉的功能,如文件3所示。

文件3 Example14.java

     public class Example14 {
         public static void main(String[] args) throws Exception {
              // 創建一個Runtime實例對象
             Runtime rt = Runtime.getRuntime();
             // 得到表示進程的Process對象
             Process process = rt.exec("notepad.exe");
             // 程序休眠3秒
             Thread.sleep(3000); 
             // 關閉進程
             process.destroy();
         }
     }

在文件3中,通過調用Process對象的destroy()方法,將打開的記事本關閉了。為了突出演示的效果,使用了Thread類的靜態方法sleep(long millis)使程序休眠了3秒,因此,程序運行后,會看到打開的記事本在3秒后自動關閉。





猜你喜歡:

Java System類方法詳細介紹[java培訓]

Java中String類初始化的兩種方式?

什么是類?在Java中怎樣聲明類的繼承關系?

黑馬程序員Java開發培訓

分享到:
在線咨詢 我要報名
和我們在線交談!