Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีดึง parent process ของ Process API ใน Java 9

ProcessHandle interface อนุญาตให้ดำเนินการและตรวจสอบสถานะของ process ระบุ process's native pid start time CPU time user parent process และ descendants สามารถเข้าถึง parent process ด้วยการเรียกเมธอด parent() ค่าที่คืนเป็น Optional จะว่างหาก child process ไม่มี parent หรือ parent ไม่พร้อมใช้งาน

ไวยากรณ์

Optional<ProcessHandle> parent()

ตัวอย่างการใช้งาน

import java.io.*;

public class ParentProcessTest {
    public static void main(String args[]) {
        try {
            Process notepadProcess = new ProcessBuilder("notepad.exe").start();
            ProcessHandle parentHandle = notepadProcess.toHandle().parent().get();
            System.out.println("Parent Process Native PID: " + parentHandle.pid());
        } catch(IOException e) {
            e.printStackTrace();
        }
    }
}

ในตัวอย่าง จะเปิดแอปพลิเคชัน "notepad" และพิมพ์ native PID ของ parent process

ผลลัพธ์

Parent Process Native PID : 7108

เมธอด ProcessHandle ที่เกี่ยวข้อง

  • pid() - native process ID
  • parent() - Optional<ProcessHandle> ของ parent
  • children() - Stream<ProcessHandle> ของ child processes โดยตรง
  • descendants() - Stream<ProcessHandle> ของทุก descendants
  • info() - ProcessHandle.Info ข้อมูลเพิ่มเติม
  • isAlive() - process ยังทำงานอยู่หรือไม่
  • destroy() - ทำลาย process แบบ graceful
  • destroyForcibly() - ทำลาย process บังคับ