জাভা ৯-এ, Process API অপারেটিং সিস্টেম প্রসেস কন্ট্রোল ও ম্যানেজ করতে ব্যবহৃত হয়। ProcessHandle ক্লাস প্রসেসের নেটিভ প্রসেস ID, স্টার্ট টাইম, অ্যাকিউমুলেটেড CPU টাইম, আর্গুমেন্টস, কমান্ড, ইউজার, পেরেন্ট প্রসেস, এবং ডিসেন্ডেন্টস প্রদান করে। এটি প্রসেসের লাইভনেস চেক করার মেথড এবং প্রসেস ডিস্ট্রয় করার মেথডও প্রদান করে। আমরা allProcesses() মেথড ব্যবহার করে সব ProcessHandle ডেটা স্ট্রিম হিসেবে রিট্রিভ করতে পারি।
উদাহরণ: সব প্রসেস ইনফরমেশন রিট্রিভ
import java.util.stream.Stream;
import java.util.Optional;
import java.util.stream.Stream;
public class AllProcessesTest {
public static void main(String args[]) throws InterruptedException {
System.out.println("---------------------------");
System.out.println("All Processes:");
Stream<ProcessHandle> processStream = ProcessHandle.allProcesses();
processStream.forEach(process -> printInfo(process));
}
private static void printInfo(ProcessHandle processHandle) {
System.out.println("---------");
System.out.println("Id: " + processHandle.pid());
System.out.println("isAlive(): " + processHandle.isAlive());
System.out.println("number of childrens: " + processHandle.children().count());
System.out.println("isSupportsNormalTermination(): " + processHandle.supportsNormalTermination());
ProcessHandle.Info processInfo = processHandle.info();
System.out.println("Info: " + processInfo.toString());
System.out.println("Info arguments().isPresent(): " + processInfo.arguments().isPresent());
System.out.println("Info command().isPresent(): " + processInfo.command().isPresent());
System.out.println("Info totalCpuDuration().isPresent(): " + processInfo.totalCpuDuration().isPresent());
System.out.println("Info user().isPresent(): " + processInfo.user().isPresent());
}
}
আউটপুট (আংশিক)
--------------------------- All Processes: Id: 7056 isAlive(): true number of childrens: 0 isSupportsNormalTermination(): false Info: [user: Optional[Tutorialspoint\User], cmd: C:\Program Files (x86)\Google\Chrome\Application\chrome.exe, startTime: Optional[2020-03-09T03:26:00.406Z], totalTime: Optional[PT1M52.15625S]] Info arguments().isPresent(): false Info command().isPresent(): true Info totalCpuDuration().isPresent(): true Info user().isPresent(): true ... (অন্যান্য প্রসেস)