Trong Java 9, có thể lấy PID của tiến trình thông qua native call và đạt được qua ProcessHandle. Chúng ta cũng có thể lấy thông tin về tiến trình Java đang chạy hiện tại (JVM) và lớp Info (inner class của ProcessHandle) chứa chi tiết về tiến trình. Chúng ta cũng có thể trả về ảnh chụp (snapshot) của tất cả tiến trình đang chạy trong hệ thống.
Ví dụ
import java.lang.ProcessHandle.Info;
public class ProcessAPIChanges {
public void detailedAPIInfo(ProcessHandle processHandle) {
Info processInfo = processHandle.info();
System.out.println("Thông tin tiến trình chi tiết được cung cấp dưới đây: ");
System.out.println("[Tên thực thi] " + processInfo.command().get());
System.out.println("[Tên người dùng] " + processInfo.user().get());
System.out.println("[Thời gian bắt đầu] " + processInfo.startInstant().get().toString());
}
public static void main(String args[]) {
System.out.println("Thay đổi Process API (Thư viện cốt lõi) ");
ProcessAPIChanges processAPIChanges = new ProcessAPIChanges();
ProcessHandle processHandle = ProcessHandle.current();
System.out.println("[ID tiến trình hiện tại] " + processHandle.pid());
processAPIChanges.detailedAPIInfo(processHandle);
ProcessHandle.allProcesses()
.filter(ph -> ph.info().command().isPresent())
.limit(4).forEach((process) -> processAPIChanges.detailedAPIInfo(process));
}
}
Kết quả
Thay đổi Process API (Thư viện cốt lõi)
[ID tiến trình hiện tại] 5724
Thông tin tiến trình chi tiết được cung cấp dưới đây:
[Tên thực thi] C:\Program Files\Java\jdk-9.0.4\bin\java.exe
[Tên người dùng] Tutorialspoint\User
[Thời gian bắt đầu] 2020-04-01T07:35:43.152Z
Thông tin tiến trình chi tiết được cung cấp dưới đây:
[Tên thực thi] C:\WINDOWS\System32\taskhostex.exe
[Tên người dùng] Tutorialspoint\User
[Thời gian bắt đầu] 2020-04-01T04:14:36.241Z
Thông tin tiến trình chi tiết được cung cấp dưới đây:
[Tên thực thi] C:\Program Files\Synaptics\SynTP\SynTPEnh.exe
[Tên người dùng] Tutorialspoint\User
[Thời gian bắt đầu] 2020-04-01T04:14:36.257Z
Thông tin tiến trình chi tiết được cung cấp dưới đây:
[Tên thực thi] C:\WINDOWS\explorer.exe
[Tên người dùng] Tutorialspoint\User
[Thời gian bắt đầu] 2020-04-01T04:14:36.335Z
Thông tin tiến trình chi tiết được cung cấp dưới đây:
[Tên thực thi] C:\Program Files (x86)\Dell Wireless\Bluetooth Suite\BtvStack.exe
[Tên người dùng] Tutorialspoint\User
[Thời gian bắt đầu] 2020-04-01T04:14:51.594Z