用Java处理API更新

通过Process API,我们可以执行与流程相关的任何操作。 假设我们想要当前正在运行的进程的进程id,或者我们想要创建一个新的进程,或者想要销毁已经在运行的进程,或者想要找到当前正在运行的进程的子进程和父进程,或者如果我们想要获得任何有关进程的信息,那么我们可以使用进程API更新。 Java 9进程API更新:–

null
  • java中的Process类中添加了一些新方法。朗包。 process类是process API中的一个旧类,java 9中只添加了一些方法,如pid()、info()等。
  • 像startPipeline()这样的方法被添加到ProcessBuilder类中,该类已经存在于旧的java版本中。
  • ProcessHandle(I):这是java 9中添加的一个新接口。它用于处理一个过程。
  • 进程句柄。信息(I):它是一个内部接口,提供与流程相关的所有信息。

ProcessHandle(一):-

  • 要获取当前正在运行的进程的ProcessHandle对象,请执行以下操作:
ProcessHandle ph = ProcessHandle.current();
  • 要获取给定流程对象的ProcessHandle,请执行以下操作:
ProcessHandle ph = p.toHandle(); //p is a process object
  • 要从给定进程ID获取ProcessHandle对象,请执行以下操作:
Optional obj = ProcessHandle.of(PID);ProcessHandle ph = obj.get();
  • //获取进程句柄对象 这里ProcessHandle对象的返回类型是可选的,因为该进程可能存在,也可能不存在。 如果进程存在,那么我们将获取其ProcessHandle对象,否则我们将无法获取其ProcessHandle对象。

JAVA

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


Id of the current process is : 5420

进程句柄。信息(一):- Info是ProcessHandle接口中的一个内部接口。 我们可以获得给定或当前运行进程的完整信息。 创建ProcessHandle。信息对象:– 为此,首先我们需要创建ProcessHandle对象,然后我们将创建ProcessHandle。信息对象。

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

ProcessHandle中的方法。信息(一):-

  • 用户():– 返回当前进程的用户。
Optional o = info.user();System.out.println("User is : "+o.get());
  • 命令():– 返回启动进程的命令。
Optional o = info.command();System.out.println("Command is : "+o.get());
  • startInstant():- 返回当前进程开始的时间。
Optional o = info.startInstant();System.out.println("Time of process start is : "+o.get());
  • totalCpuDuration():- 返回当前进程的总CPU持续时间。
Optional o = info.totalCpuDuration();System.out.println("Total CPU duration is : "+o.get());

例如:——

JAVA

public class Demo {
public static void main(String[] args)
{
ProcessHandle ph = ProcessHandle.current();
ProcessHandle.Info pinfo = ph.info();
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());
}
}


© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享