• 让天下没有难学的技术
    多数学员都来自推荐,这就是口碑的力量

Java9 进程API详细介绍

在 Java 9 之前,还需要对使用本地进程的基本支持,例如获取进程的 PID 进程 API,进程的开始时间进程,使用了多少 CPU 时间,多少本地进程正在运行等。

Java培训学习

Java 9 向 Process API 添加了一个名称 ProcessHandle 的进程接口来增强 java.lang. 类。

ProcessHandle 接口的实例标识一个本地进程,它允许进程状态并管理进程。

ProcessHandle 隐藏接口信息来让开发者以后时常因为要获取一个本地进程的PID而需要使用本地代码的观看场景。

我们不能在接口中提供实现。如果我们要提供抽象方法和非抽象(方法与实现)的组合,那么我们就可以使用抽象类。

ProcessHandle 接口中声明的 onExit() 可用于在某个进程终止时触发部分操作。

实例

导入java 。时间。区域标识;
导入java 。实用程序。流。流;
导入java 。实用程序。流。收藏家;
导入java 。哦。IO异常;

public class Tester { public static void main ( String [ ] args )抛出IOException { ProcessBuilder pb = new ProcessBuilder ( ” notepad.exe ” ) ;
String np = “不存在” ;
过程p = pb 。开始( ) ;
进程句柄。信息信息= p 。信息( ) ;
系统。出来。的printf (“进程ID:%S%N ” ,p 。PID ( ) ) ;
系统。出来。的printf (“命令名称:%s%N ” ,信息。命令()。否则容易(NP ));
系统。出来。的printf (“命令行:%S%N ” ,信息。命令行()。否则容易(NP ));

系统。出来。打印输出(“开始时间:%S%N ” ,
信息。startInstant ()。映射(我- >我。atZone (了zoneid 。systemDefault ())
。toLocalDateTime ()。的toString ())。否则容易(NP ));

系统。出来。printf ( “参数:%s%n ”,
信息。参数( ) 。映射(一- >流。的(一个)。收集(收藏家。加入(“ ” )))。orElse ( np ) ) ;

系统。出来。printf ( “用户:%s%n ” ,信息。用户( ) 。或Else (
NP ) ) ; } }

以上实例执行输出结果为:

进程号:5800
命令名称:C:\Windows\System32\notepad.exe
命令行:不存在
开始时间:2017-11-04T21:35:03.626
参数:不存在
用户:管理员
了解更多java培训课程相关技术内容欢迎关注小编!

发表评论

邮箱地址不会被公开。 必填项已用*标注