Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java9でProcessAPIのプロセスツリーをトラバースする方法は?


Java 9 プロセスAPIが改善されました 、およびオペレーティングシステムプロセスの管理と制御に役立ちます。 Java 9以前は、Javaプログラムを使用してオペレーティングシステムプロセスを管理および制御することは困難でした。 J ava 9以降 、Javaプログラムを介してオペレーティングシステムプロセスを制御するための新しいクラスとインターフェイスが追加されました。 ProcessHandleなどの新しいインターフェース およびProcessHandle.Info 追加され、新しいメソッドもプロセスに追加されました クラス。

以下の例では、プロセスツリーをトラバースできます 子供 および子孫 プロセス)のプロセス API。

import java.io.IOException;

public class ProcessTreeTest {
   public static void main(String args[]) throws IOException {
      Runtime.getRuntime().exec("cmd");
     
      System.out.println("Showing children processes:");
      ProcessHandle processHandle = ProcessHandle.current();
      processHandle.children().forEach(childProcess ->
              System.out.println("PID: " + childProcess.pid() + " Command: " + childProcess.info().command().get()));
     
      System.out.println("Showing descendant processes:");
      processHandle.descendants().forEach(descendantProcess ->
              System.out.println("PID: " + descendantProcess.pid() + " Command: " +   descendantProcess.info().command().get()));
   }
}

出力

Showing children processes:
PID: 5092 Command: C:\WINDOWS\System32\cmd.exe
Showing descendant processes:
PID: 5092 Command: C:\WINDOWS\System32\cmd.exe
PID: 2256 Command: C:\WINDOWS\System32\conhost.exe

  1. Windows10でプロセスを強制終了する方法

    低速のコンピューターを扱っている場合でも、すべてのリソースを占有している大量のブロートウェアに気付いた場合でも、Windowsで問題のあるプロセスを強制終了することが、問題に対処するための最良の方法です。 これにより、PCのパフォーマンスが向上するだけでなく、スパイウェアやウイルスを防ぐことができます。そして、質問する前に:いいえ、Windows 10でプロセスを強制終了することは難しくありません。これを安全かつ簡単に実行できる、さまざまな方法をすべて説明します。 Windows10でプロセスを強制終了する理由 Windowsで実行されている各アプリケーションは、1つ以上の「プロセス

  2. Java 9でProcessBuilderを使用してプロセスを作成するにはどうすればよいですか?

    Java 9 ProcessHandleを追加しました プロセスAPIへのインターフェース プロセスクラスを強化します。 ProcessHandleインターフェースのインスタンスは、プロセスのステータスを照会できるようにするローカルプロセスを識別します プロセスの管理と管理、および ProcessHandle.Info PID を取得する必要があるため、ローカルコードを使用できます ローカルプロセスの。 ProcessBuilder クラスを使用して、個別のオペレーティングシステムプロセスを作成できます。以下の例では、「メモ帳」のプロセスを作成できます。 ProcessBuil