ホームページ  >  記事  >  Java  >  Java で ProcessBuilder を使用して起動されたプロセスの PID を取得する方法

Java で ProcessBuilder を使用して起動されたプロセスの PID を取得する方法

DDD
DDDオリジナル
2024-10-25 08:14:29438ブラウズ

How to Retrieve the PID of a Process Launched using ProcessBuilder in Java?

Java から起動されたプロセスの PID を取得する

ProcessBuilder を使用して Java でプロセスを起動する場合、多くの場合、そのプロセス ID を取得する必要があります。 (PID) さらなる管理または監視を可能にします。これを実現する方法は次のとおりです。

以前のバージョンの Java では、Runtime.getRuntime().exec() を使用してプロセスを開始し、ProcessHandle.pid() メソッドを使用してその PID を取得できました。ただし、Java 9 の導入により、ProcessBuilder はより洗練されたアプローチを提供します。

<code class="java">import java.io.IOException;
import java.util.concurrent.ThreadLocalRandom;

public class GetProcessPID {

    public static void main(String[] args) {
        // Generate a random number for the process name
        String processName = "Process_" + ThreadLocalRandom.current().nextInt(1000);

        try {
            // Start the process with ProcessBuilder
            ProcessBuilder pb = new ProcessBuilder("cmd", "/c", processName);
            Process p = pb.start();

            // Retrieve and print the process PID
            long pid = p.pid();
            System.out.println("Process PID: " + pid);
        } catch (IOException e) {
            System.out.println("Error starting process: " + e.getMessage());
        }
    }
}</code>

このコードは、ProcessBuilder を使用して、指定した名前 (processName) でコマンド プロンプト (cmd) ウィンドウを起動する方法を示しています。次に、Process オブジェクトの pid() メソッドを使用して、新しく作成されたプロセスの PID を取得し、コンソールに出力されます。

Java 9 以降、pid() メソッドは簡単に取得する方法です。 ProcessBuilder を使用して起動されたプロセスの PID。以前の Java バージョンで ProcessHandle を使用した場合と比較して、プロセスが簡素化されます。

以上がJava で ProcessBuilder を使用して起動されたプロセスの PID を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。