如何在Java 9中檢索Process API的所有程序資料?
在 Java 9 中,**Process API** 已用於控制和管理作業系統程序。**ProcessHandle** 類提供程序的本機**程序 ID**、**啟動時間**、**累計 CPU 時間**、**引數**、**命令**、**使用者**、**父程序**和**子孫程序**。它還提供了一種檢查程序**活動性**和**銷燬**程序的方法。我們可以使用 **allProcesses()** 方法將所有 **ProcessHandle** 資料作為流檢索。
在下面的示例中,我們檢索所有程序資訊。
示例
import java.util.stream.Stream;
import java.util.Optional;
import java.util.stream.Stream;
public class AllProcessesTest {
public static void main(String args[]) throws InterruptedException {
System.out.println("---------------------------");
System.out.println("All Processes:");
Stream<ProecessHandle> processStream = ProcessHandle.allProcesses();
processStream.forEach(process -> printInfo(process));
}
private static void printInfo(ProcessHandle processHandle) {
System.out.println("---------");
System.out.println("Id: " + processHandle.pid());
System.out.println("isAlive(): " + processHandle.isAlive());
System.out.println("number of childrens: " + processHandle.children().count());
System.out.println("isSupportsNormalTermination(): " + processHandle.supportsNormalTermination());
ProcessHandle.Info processInfo = processHandle.info();
System.out.println("Info: " + processInfo.toString());
System.out.println("Info arguments().isPresent(): " + processInfo.arguments().isPresent());
System.out.println("Info command().isPresent(): " + processInfo.command().isPresent());
System.out.println("Info totalCpuDuration().isPresent(): " + processInfo.totalCpuDuration().isPresent());
System.out.println("Info user().isPresent(): " + processInfo.user().isPresent());
}
}輸出
--------------------------- All Processes: Id: 7056 isAlive(): true number of childrens: 0 isSupportsNormalTermination(): false Info: [user: Optional[Tutorialspoint\User], cmd: C:\Program Files (x86)\Google\Chrome\Application\chrome.exe, startTime: Optional[2020-03-09T03:26:00.406Z], totalTime: Optional[PT1M52.15625S]] Info arguments().isPresent(): false Info command().isPresent(): true Info totalCpuDuration().isPresent(): true Info user().isPresent(): true --------- Id: 6168 isAlive(): true number of childrens: 0 isSupportsNormalTermination(): false Info: [user: Optional[Tutorialspoint\User], cmd: C:\Program Files (x86)\Google\Chrome\Application\chrome.exe, startTime: Optional[2020-03-09T03:26:01.567Z], totalTime: Optional[PT2M24.671875S]] Info arguments().isPresent(): false Info command().isPresent(): true Info totalCpuDuration().isPresent(): true Info user().isPresent(): true --------- Id: 7972 isAlive(): true number of childrens: 0 isSupportsNormalTermination(): false Info: [user: Optional[Tutorialspoint\User], cmd: C:\Program Files (x86)\Google\Chrome\Application\chrome.exe, startTime: Optional[2020-03-09T03:26:03.118Z], totalTime: Optional[PT29.09375S]] Info arguments().isPresent(): false Info command().isPresent(): true Info totalCpuDuration().isPresent(): true Info user().isPresent(): true --------- Id: 3368 isAlive(): true number of childrens: 0 isSupportsNormalTermination(): false Info: [user: Optional[Tutorialspoint\User], cmd: C:\Program Files (x86)\Google\Chrome\Application\chrome.exe, startTime: Optional[2020-03-09T03:27:26.511Z], totalTime: Optional[PT37.84375S]] Info arguments().isPresent(): false Info command().isPresent(): true Info totalCpuDuration().isPresent(): true Info user().isPresent(): true --------- Id: 2456 isAlive(): true number of childrens: 0 isSupportsNormalTermination(): false Info: [user: Optional[Tutorialspoint\User], cmd: C:\WINDOWS\System32\conhost.exe, startTime: Optional[2020-03-09T03:30:49.514Z], totalTime: Optional[PT0.390625S]] Info arguments().isPresent(): false Info command().isPresent(): true Info totalCpuDuration().isPresent(): true Info user().isPresent(): true --------- Id: 7804 isAlive(): true number of childrens: 4 isSupportsNormalTermination(): false Info: [user: Optional[Tutorialspoint\User], cmd: C:\Program Files\Mozilla Firefox\firefox.exe, startTime: Optional[2020-03-09T03:30:51.441Z], totalTime: Optional[PT38.046875S]] Info arguments().isPresent(): false Info command().isPresent(): true Info totalCpuDuration().isPresent(): true Info user().isPresent(): true --------- Id: 8172 isAlive(): true number of childrens: 0 isSupportsNormalTermination(): false Info: [user: Optional[Tutorialspoint\User], cmd: C:\Program Files\Mozilla Firefox\firefox.exe, startTime: Optional[2020-03-09T03:30:53.293Z], totalTime: Optional[PT4.03125S]] Info arguments().isPresent(): false Info command().isPresent(): true Info totalCpuDuration().isPresent(): true Info user().isPresent(): true --------- Id: 6008 isAlive(): true number of childrens: 0 isSupportsNormalTermination(): false Info: [user: Optional[Tutorialspoint\User], cmd: C:\Program Files\Mozilla Firefox\firefox.exe, startTime: Optional[2020-03-09T03:30:54.081Z], totalTime: Optional[PT5M28.078125S]] Info arguments().isPresent(): false Info command().isPresent(): true Info totalCpuDuration().isPresent(): true Info user().isPresent(): true --------- Id: 1032 isAlive(): false number of childrens: 0 isSupportsNormalTermination(): false Info: [] Info arguments().isPresent(): false Info command().isPresent(): false Info totalCpuDuration().isPresent(): false Info user().isPresent(): false --------- Id: 5044 isAlive(): true number of childrens: 0 isSupportsNormalTermination(): false Info: [user: Optional[Tutorialspoint\User], cmd: C:\Program Files\Java\jdk-9.0.4\bin\java.exe, startTime: Optional[2020-03-09T04:12:39.567Z], totalTime: Optional[PT1.28125S]] Info arguments().isPresent(): false Info command().isPresent(): true Info totalCpuDuration().isPresent(): true Info user().isPresent(): true
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP