使用者必須了解系統中正在執行的進程,無論是前台還是後台。為此,在 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) 上執行它。
在這個方法中,我們呼叫一個執行 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中文網其他相關文章!