首頁 >Java >java教程 >如何取得目前開啟的進程列表(Java)?

如何取得目前開啟的進程列表(Java)?

PHPz
PHPz轉載
2023-09-01 13:53:121362瀏覽

如何取得目前開啟的進程列表(Java)?

使用者必須了解系統中正在執行的進程,無論是前台還是後台。為此,在 Windows 中我們有一個任務管理器,但在內部它使用一個名為任務清單的程式。任務列表除了為我們提供當前正在運行的進程之外,還為我們提供了詳細信息,例如每個進程的進程 ID、會話名稱、會話和記憶體使用情況。

在本文中,我們將了解如何使用 Java 程式語言來取得目前開啟的進程的清單。

演算法

第 1 步 - 建立一個執行 tasklist.exe 的程序

第 2 步 - 建立一個接受流程物件的 BufferedReader 類別。

步驟 3 - 使用 while 循環逐行讀取流程詳細資訊並將其列印出來。

文法

要執行位於system32資料夾中的tasklist.exe,我們需要呼叫進程obj然後執行。

以下是使用該方法執行tasklist.exe程式的語法:

Process process_object = Runtime.getRuntime().exec(System.getenv("windir") + "\system32" + "tasklist.exe");

注意該程式不適用於任何線上編輯器。要取得本機系統中目前開啟的進程的列表,您只需在本機編輯器 (Java IDE) 上執行它。

方法:使用tasklist.exe列出所有活動進程

在這個方法中,我們呼叫一個執行 WIN32 資料夾中的 tasklist.exe 的程序。之後我們使用BufferedReader讀取所有活動進程並將其一一列印到控制台。

範例

import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
   public static void main(String[] args) {
      try {

         // String variable to store process details
         String processes;

         // Execute tasklis.exe from win32
         Process p = Runtime.getRuntime().exec(System.getenv("windir") + "\system32" + "tasklist.exe");
         
         // Buffered reader to read from the process object
         BufferedReader br = new BufferedReader(newInputStreamReader(p.getInputStream()));
        
        // Prints all processes one by one
         while ((processes = br.readLine()) != null) {
            System.out.println(processes);
         }
      }
      catch (Exception e) {
         e.printStackTrace();
      }
   }
}

輸出

Image Name                    PID    Session Name     Session#    Mem Usage

========================= ======== ================ =========== ============
System Idle Process              0 Services                   0          8 K
System                           4 Services                   0      9,416 K
Registry                       140 Services                   0     30,420 K
smss.exe                       604 Services                   0      1,076 K
csrss.exe                      976 Services                   0      5,936 K
csrss.exe                     1112 Console                    1     14,144 K
winlogon.exe                  1164 Console                    1     11,704 K
wininit.exe                   1216 Services                   0      6,628 K
services.exe                 1260  Services                   0      9,804 K
lsass.exe                    1276  Services                   0     27,360 K
svchost.exe                  1396  Services                   0      1,388 K
fontdrvhost.exe              1428  Console                    1      6,608 K
...

在本文中,我們探討如何在 Java 中尋找目前開啟的進程清單。

以上是如何取得目前開啟的進程列表(Java)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除
上一篇:Java中的方差下一篇:Java中的方差