Modern Process API
ProcessHandle ile işletim sistemi süreçlerini inceleyin ve yönetin.
Kod Karşılaştırması
✕ Java 8
Process p = Runtime.getRuntime()
.exec("ls -la");
int code = p.waitFor();
// no way to get PID
// no easy process info
✓ Java 9+
ProcessHandle ph =
ProcessHandle.current();
long pid = ph.pid();
ph.info().command()
.ifPresent(IO::println);
ph.children().forEach(
c -> IO.println(c.pid()));
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
Tam bilgi
PID, komut, argümanlar, başlangıç zamanı, CPU kullanımına erişin.
Süreç ağacı
Üst, alt ve torun süreçlerde gezinin.
İzleme
onExit() asenkron izleme için bir CompletableFuture döndürür.
Eski Yaklaşım
Runtime.exec()
Modern Yaklaşım
ProcessHandle
JDK'dan itibaren
9
Zorluk
Orta
JDK Desteği
Modern Process API
Mevcut
JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)
Nasıl çalışır
ProcessHandle; PID'leri, süreç bilgilerini (komut, argümanlar, başlangıç zamanı, CPU kullanımı), üst/alt ilişkilerini ve süreç sonlandırmayı sağlar. Artık belgelenmemiş Process iç kısımlarına gerek yok.
İlgili Belgeler