Informazioni sui processi in Java e ProcessHandle

Mattepuffo's logo
Informazioni sui processi in Java e ProcessHandle

Informazioni sui processi in Java e ProcessHandle

Ho scoperto che da Java 9 la Process API è stata implementata e migliorata.

Quindi oggi vediamo come usarla per visualizzare i processi di sistema ed eventuali process figli.

Per farlo useremo ProcessHandle:

import java.util.stream.Stream;

public class Main {

    public static void main(String[] args) {
        Stream<ProcessHandle> liveProcesses = ProcessHandle.allProcesses();
        liveProcesses.filter(ProcessHandle::isAlive)
                .forEach(ph -> {
                    System.out.println(ph.pid() + " - " + ph.info());

                    Stream<ProcessHandle> chProcess = ph.children();
                    chProcess.forEach(ch -> {
                        System.out.println("CHILDREN: " + ch.info());
                    });

                    System.out.println("----------");
                });
    }

}

Come vedete creiamo due Stream:

  1. il primo per i processi principali, facendo un filtro su quelli alive
  2. il secondo sui figli

Prima visualiziamo il PID del processo, e poi diverse altre informazioni.

Io le ho postate tutte; ovviamente potete elaborare il risultato per estrapolare quelle che vi servono.

Potete usare ProcessHandle.Info.

Enjoy!


Condividi

Commentami!