Maison  >  Article  >  Java  >  Comment récupérer le PID d'un processus lancé à l'aide de ProcessBuilder en Java ?

Comment récupérer le PID d'un processus lancé à l'aide de ProcessBuilder en Java ?

DDD
DDDoriginal
2024-10-25 08:14:29438parcourir

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

Récupération du PID d'un processus lancé depuis Java

Lors du lancement d'un processus en Java à l'aide de ProcessBuilder, vous devez souvent obtenir son ID de processus (PID) pour une gestion ou une surveillance ultérieure. Voici comment y parvenir :

Dans les versions précédentes de Java, vous pouviez utiliser Runtime.getRuntime().exec() pour démarrer un processus et récupérer son PID à l'aide de la méthode ProcessHandle.pid(). Cependant, avec l'introduction de Java 9, ProcessBuilder propose une approche plus raffinée.

<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>

Ce code montre comment utiliser ProcessBuilder pour démarrer une fenêtre d'invite de commande (cmd) avec un nom spécifié (processName). La méthode pid() de l'objet Process est ensuite utilisée pour obtenir le PID du processus nouvellement créé, qui est imprimé sur la console.

Depuis Java 9, la méthode pid() est un moyen simple de récupérer le PID des processus lancés à l’aide de ProcessBuilder. Cela simplifie le processus par rapport à l'utilisation de ProcessHandle dans les versions Java antérieures.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn