Java 9 API de Procesos: Mejoras Clave y Nuevas Características
En Java 9, la API de Procesos, responsable de controlar y gestionar procesos del sistema operativo, se ha mejorado considerablemente. La clase ProcessHandle ahora proporciona el ID de proceso nativo, hora de inicio, tiempo de CPU acumulado, argumentos, comando, usuario, proceso padre y descendientes. La clase ProcessHandle también proporciona métodos para comprobar la vitalidad de los procesos y destruirlos. Tiene el método onExit, la clase CompletableFuture puede realizar acciones asíncronamente cuando el proceso sale.
Tester.java
import java.time.ZoneId;
import java.util.stream.Stream;
import java.util.stream.Collectors;
import java.io.IOException;
public class Tester {
public static void main(String[] args) throws IOException {
ProcessBuilder pb = new ProcessBuilder("notepad.exe");
String np = "No Presente";
Process p = pb.start();
ProcessHandle.Info info = p.info();
System.out.printf("ID de Proceso: %s%n", p.pid());
System.out.printf("Nombre del comando: %s%n", info.command().orElse(np));
System.out.printf("Línea de comandos: %s%n", info.commandLine().orElse(np));
System.out.printf("Hora de inicio: %s%n", info.startInstant().map(i -> i.atZone(ZoneId.systemDefault()).toLocalDateTime().toString()).orElse(np));
System.out.printf("Argumentos: %s%n", info.arguments().map(a -> Stream.of(a).collect(Collectors.joining(" "))).orElse(np));
System.out.printf("Usuario: %s%n", info.user().orElse(np));
}
}
Salida
Verás la siguiente salida.
ID de Proceso: 5800
Nombre del comando: C:\Windows\System32\notepad.exe
Línea de comandos: No Presente
Hora de inicio: 2017-11-04T21:35:03.626
Argumentos: No Presente
Usuario: administrador
Java
- Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos
- Comentarios en Java: Tipos, Uso y Mejores Prácticas
- Dominar el Bucle for Mejorado en Java: Sintaxis, Ejemplos y Mejores Prácticas
- Dominar Strings en Java: Creación, Métodos y Mejores Prácticas
- Dominando interfaces en Java: Conceptos, implementación y mejores prácticas
- Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
- Dominando Try‑with‑Resources en Java: Gestión automática de recursos explicada
- Anotaciones en Java explicadas: Tipos, ubicación y ejemplos prácticos
- Aserciones en Java: Guía práctica para detectar bugs y asegurar fiabilidad del código
- Java 9 (JDK 9) – Características y Beneficios Clave
- Java 9 API de Procesos: Mejoras Clave y Nuevas Características