Java 9 API de procesos mejorada
Nuevas características de Java 9
Antes de Java 9, la API de procesos carecía de soporte básico para procesos locales, como obtener el PID y el propietario de un proceso, la hora de inicio del proceso, cuánto tiempo de CPU ha utilizado el proceso, cuántos procesos locales se están ejecutando, etc.
Java 9 añadió a la API de procesos una interfaz llamada ProcessHandle para mejorar la clase java.lang.Process.
Una instancia de la interfaz ProcessHandle identifica un proceso local y permite consultar el estado del proceso y gestionarlo.
La interfaz anidada Info de ProcessHandle permite a los desarrolladores librarse de la necesidad de usar código nativo con frecuencia para obtener el PID de un proceso local.
No podemos proporcionar implementaciones de métodos en una interfaz. Si queremos proporcionar una combinación de métodos abstractos y no abstractos (métodos con implementación), entonces tenemos que usar una clase abstracta.
El método onExit() declarado en la interfaz ProcessHandle se puede utilizar para activar ciertas acciones cuando un proceso termina.
Ejemplo
El resultado de la ejecución del ejemplo anterior es:
Process ID : 5800 Command name : C:\Windows\System32\notepad.exe Command line : Not Present Start time: 2017-11-04T21:35:03.626 Arguments : Not Present User: administratorOtras extensiones