Java 9 Process API: Peningkatan Kunci dan Fitur Baru
Dalam Java 9, Process API yang bertanggung jawab untuk mengontrol dan mengelola proses sistem operasi telah ditingkatkan secara signifikan. Kelas ProcessHandle sekarang menyediakan ID proses asli, waktu mulai, waktu CPU yang terakumulasi, argumen, perintah, pengguna, proses induk, dan keturunan. Kelas ProcessHandle juga menyediakan metode untuk memeriksa kehidupan proses dan untuk menghancurkan proses. Ia memiliki metode onExit, kelas CompletableFuture dapat melakukan tindakan secara asinkron saat proses keluar.
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 = "Not Present"; Process p = pb.start(); ProcessHandle.Info info = p.info(); System.out.printf("Process ID : %s%n", p.pid()); System.out.printf("Command name : %s%n", info.command().orElse(np)); System.out.printf("Command line : %s%n", info.commandLine().orElse(np)); System.out.printf("Start time: %s%n", info.startInstant().map(i -> i.atZone(ZoneId.systemDefault()) .toLocalDateTime().toString()).orElse(np)); System.out.printf("Arguments : %s%n", info.arguments().map(a -> Stream.of(a).collect( Collectors.joining(" "))).orElse(np)); System.out.printf("User : %s%n", info.user().orElse(np)); } } Output
Anda akan melihat output berikut.
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: administrator