Die Klassen
Process Handling und zugehörige APIs wurden in Java 9 eingeführt. Wir können die ProcessHandle-Schnittstelle und verwandte Methoden verwenden, um pid und andere verwandte Prozessinformationen zu erhalten. Wir müssen alle untergeordneten Elemente des Prozesses abrufen und dann die Methode java.lang.ProcessHandle.children() verwenden. Diese Methode gibt einen Stream zurück, normalerweise einen Prozess ohne untergeordnete Prozesse.
Im folgenden Beispiel können wir den ersten Prozess abrufen und die Informationen zu seinem untergeordneten Prozess abrufen.
import java.util.stream.Stream; import java.util.Optional; public class ChilderenProcessTest { public static void main(String args[]) throws InterruptedException { System.out.println("---------------------------"); System.out.println("Children Processes:"); <strong>Optional<ProcessHandle></strong> processHandle = <strong>ProcessHandle.allProcesses().findFirst()</strong>; processHandle.<strong>ifPresent</strong>(proc -> proc.<strong>children()</strong>.forEach(child -> System.out.println("PID: [ " + <strong>child.pid()</strong> + " ], Cmd: [ " + <strong>child.info().command()</strong> + " ]"))); } }
<strong>--------------------------- Children Processes: PID: [ 0 ], Cmd: [ Optional.empty ] PID: [ 4 ], Cmd: [ Optional.empty ] PID: [ 424 ], Cmd: [ Optional.empty ] PID: [ 504 ], Cmd: [ Optional.empty ] PID: [ 560 ], Cmd: [ Optional.empty ] PID: [ 444 ], Cmd: [ Optional.empty ] PID: [ 1236 ], Cmd: [ Optional.empty ] PID: [ 1288 ], Cmd: [ Optional.empty ] PID: [ 1408 ], Cmd: [ Optional.empty ] PID: [ 1424 ], Cmd: [ Optional.empty ] PID: [ 1452 ], Cmd: [ Optional.empty ] PID: [ 1468 ], Cmd: [ Optional.empty ] PID: [ 5412 ], Cmd: [ Optional[C:\WINDOWS\System32\taskhostex.exe] ] PID: [ 3760 ], Cmd: [ Optional[C:\Program Files\Synaptics\SynTP\SynTPEnh.exe] ] PID: [ 5216 ], Cmd: [ Optional[C:\WINDOWS\explorer.exe] ] PID: [ 2460 ], Cmd: [ Optional[C:\Program Files (x86)\Dell Wireless\Bluetooth Suite\BtvStack.exe] ] PID: [ 6064 ], Cmd: [ Optional[C:\Program Files\Realtek\Audio\HDA\RtkNGUI64.exe] ] PID: [ 7172 ], Cmd: [ Optional[C:\Program Files (x86)\Google\Chrome\Application\chrome.exe] ] PID: [ 860 ], Cmd: [ Optional[C:\Program Files (x86)\Google\Chrome\Application\chrome.exe] ] PID: [ 9000 ], Cmd: [ Optional.empty ] PID: [ 4180 ], Cmd: [ Optional[C:\WINDOWS\System32\cmd.exe] ] PID: [ 3748 ], Cmd: [ Optional[C:\WINDOWS\System32\conhost.exe] ] PID: [ 3376 ], Cmd: [ Optional.empty ] PID: [ 2548 ], Cmd: [ Optional.empty ] PID: [ 1820 ], Cmd: [ Optional[C:\Program Files\Java\jdk-9.0.4\bin\java.exe] ]</strong>
Das obige ist der detaillierte Inhalt vonWie erhalte ich alle untergeordneten Prozesse eines Prozesses mithilfe der Prozess-API in Java 9?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!