>  기사  >  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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.