Heim > Java > javaLernprogramm > Wie erhalte ich alle untergeordneten Prozesse eines Prozesses mithilfe der Prozess-API in Java 9?

Wie erhalte ich alle untergeordneten Prozesse eines Prozesses mithilfe der Prozess-API in Java 9?

WBOY
Freigeben: 2023-09-09 10:41:02
nach vorne
759 Leute haben es durchsucht

Die Klassen

如何使用Java 9中的Process API获取进程的所有子进程?

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.

Beispiel

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> + " ]")));
   }
}
Nach dem Login kopieren

Ausgabe

<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>
Nach dem Login kopieren

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!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage