산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java 9 - 프로세스 API 개선 사항

Java 9에서는 운영 체제 프로세스를 제어하고 관리하는 프로세스 API가 상당히 개선되었습니다. ProcessHandle 클래스는 이제 프로세스의 기본 프로세스 ID, 시작 시간, 누적 CPU 시간, 인수, 명령, 사용자, 상위 프로세스 및 하위 항목을 제공합니다. ProcessHandle 클래스는 프로세스의 활성 상태를 확인하고 프로세스를 파괴하는 메서드도 제공합니다. onExit 메서드가 있으며 CompletableFuture 클래스는 프로세스가 종료될 때 비동기적으로 작업을 수행할 수 있습니다.

테스터.자바

import java.time.ZoneId;
import java.util.stream.Stream;
import java.util.stream.Collectors;
import java.io.IOException;

public class Tester {
   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 : 5800
Command name : C:\Windows\System32\notepad.exe
Command line : Not Present
Start time: 2017-11-04T21:35:03.626
Arguments : Not Present
User: administrator

java

  1. 자바 연산자
  2. 자바 주석
  3. 자바 for-each 루프
  4. 자바 문자열
  5. 자바 인터페이스
  6. 자바 익명 클래스
  7. 자바 리소스 사용
  8. 자바 주석
  9. 자바 어설션
  10. 자바 9 - 개요