Skip to content
Related Articles
Open in App
Not now

Related Articles

Process API Updates in Java

Improve Article
Save Article
  • Last Updated : 23 Feb, 2022
Improve Article
Save Article

By Process API, we can perform any operation related to a process.
Suppose if we want the process id of current running process, or we want to create a new process, or want to destroy already running process, or want to find the child and parent processes of current running process, or if we want to get any information regarding a process, then we can use Process API updates.
Java 9 Process API Updates: – 

  • Some new methods are added to the Process class present in java.lang package. 
    The process class is an old class in Process API, only some methods like, pid(), info() etc are added in java 9.
  • Methods like startPipeline() are added to ProcessBuilder class which is already present in old java versions.
  • ProcessHandle(I) : This is a new interface added in java 9. It is used to handle a process.
  • ProcessHandle.Info(I): It is an inner interface, it provides all the information related to a process.

ProcessHandle(I): – 

  • To get ProcessHandle object of current running process:
ProcessHandle ph = ProcessHandle.current();
  • To get ProcessHandle of the given process object:
ProcessHandle ph = p.toHandle(); //p is a process object
  • To get ProcessHandle object from a given process ID:
Optional obj = ProcessHandle.of(PID);
ProcessHandle ph = obj.get();
  • //getting process handle object 
    Here the return type of ProcessHandle object is optional because the process may or may not exist. 
    If the process exist then we will get its ProcessHandle object otherwise we won’t get its ProcessHandle object. 


public class Demo {
    public static void main(String[] args)
        ProcessHandle ph = ProcessHandle.current();
        long id =;
        System.out.println("Id of the current process is : " + id);

Id of the current process is : 5420

ProcessHandle.Info(I): – 
Info is an inner interface present inside ProcessHandle interface.
We can get complete information of the given or current running process.
To create ProcessHandle.Info object: – 
For this, first we need to create ProcessHandle object and then we will create ProcessHandle.Info object. 

ProcessHandle ph = ProcessHandle.current();
ProcessHandle.Indo pinfo =;

Methods in ProcessHandle.Info(I): – 

  • user(): – 
    returns the user of the current process.
Optional o = info.user();
System.out.println("User is : "+o.get());
  • command(): – 
    returns the command by which the process is started.
Optional o = info.command();
System.out.println("Command is : "+o.get());
  • startInstant(): – 
    returns the time at which the current process started.
Optional o = info.startInstant();
System.out.println("Time of process start is : "+o.get());
  • totalCpuDuration(): – 
    returns the total CPU duration of the current process.
Optional o = info.totalCpuDuration();
System.out.println("Total CPU duration is : "+o.get());

Example: – 


public class Demo {
    public static void main(String[] args)
        ProcessHandle ph = ProcessHandle.current();
        ProcessHandle.Info pinfo =;
        System.out.println("Complete process information is :" + pinfo);
        System.out.println("User of the process is : " + pinfo.user().get());
        System.out.println("Command used is : " + pinfo.command().get());
        System.out.println("Time of process starting is : " + pinfo.startInstant().get());
        System.out.println("Total CPU Duration is : " + pinfo.totalCpuDuration().get());

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!