首页
登录 | 注册

Java9 进程API

1. 概述

Java中的进程API在Java5之前还是非常原始的,开启一个新进程唯一的方式是调用Runtime.getRuntime().exec() ,直到Java5发布之后,一些更加简明的开启新进程方式被封装到了ProcessBuilder 中。

而在Java9中,你也将能使用一种全新的方式来获取当前系统所有正在运行的进程的相关信息。

话不多说,先睹为快!

2. 当前Java进程的信息

我们通过调用java.lang.ProcessHandle.Info 可以获取诸多进程的相关信息:

  • 用于开启此进程所使用的命令
  • 命令中传递的参数
  • 开启时间
  • 开启者和总运行时间

下面是具体方式:

@Test
public void givenCurrentProcess_whenInvokeGetInfo_thenSuccess() 
  throws IOException {

    ProcessHandle processHandle = ProcessHandle.current();
    ProcessHandle.Info processInfo = processHandle.info();

    assertNotNull(processHandle.getPid());
    assertEquals(false, processInfo.arguments().isPresent());
    assertEquals(true, processInfo.command().isPresent());
    assertTrue(processInfo.command().get().contains("java"));
    assertEquals(true, processInfo.startInstant().isPresent());
    assertEquals(true, 
      processInfo.totalCpuDuration().isPresent());
    assertEquals(true, processInfo.user().isPresent());
}


2020 monjeep.com webmaster#monjeep.com
10 q. 0.008 s.
京ICP备10005923号