জাভা ৯ Process API-তে ProcessHandle ইন্টারফেস যোগ করেছে Process ক্লাস উন্নত করার জন্য। ProcessHandle ইন্টারফেসের একটি ইনস্ট্যান্স একটি লোকাল প্রসেস চিহ্নিত করে যা আমাদের প্রসেস স্ট্যাটাস কোয়েরি করতে এবং প্রসেস ম্যানেজ করতে দেয়, এবং ProcessHandle.Info আমাদের লোকাল কোড ব্যবহার করতে দেয় কারণ লোকাল প্রসেসের PID প্রাপ্তির প্রয়োজন।
ProcessBuilder ক্লাস আলাদা অপারেটিং সিস্টেম প্রসেস তৈরি করতে ব্যবহৃত হয়। নিচের উদাহরণে, আমরা ProcessBuilder ক্লাস ব্যবহার করে "notepad" অ্যাপ্লিকেশনের একটি প্রসেস তৈরি করতে পারি।
উদাহরণ
import java.time.ZoneId;
import java.util.stream.Stream;
import java.util.stream.Collectors;
import java.io.IOException;
public class ProcessBuilderTest {
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));
}
}
উপরের উদাহরণ নিচের মতো নোটপ্যাড অ্যাপ্লিকেশন লঞ্চ করে

আউটপুট
Process ID : 3728 Command name : C:\WINDOWS\System32\notepad.exe Command line : Not Present Start time: 2020-04-20T18:06:30.378 Arguments : Not Present User : Tutorialspoint\User