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

Java 9 프로세스 API: 주요 개선 사항 및 새로운 기능

Java 9에서 운영체제 프로세스를 제어하고 관리하는 역할을 하는 프로세스 API가 크게 개선되었습니다. ProcessHandle 클래스는 이제 프로세스의 네이티브 프로세스 ID, 시작 시간, 누적 CPU 시간, 인수, 명령, 사용자, 부모 프로세스, 자손 프로세스를 제공합니다. ProcessHandle 클래스는 프로세스 생존 여부 확인과 프로세스 종료 메서드도 제공합니다. onExit 메서드가 있어 CompletableFuture 클래스가 프로세스 종료 시 비동기적으로 액션을 수행할 수 있습니다.

Tester.java

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("프로세스 ID: %s%n", p.pid());
        System.out.printf("명령 이름: %s%n", info.command().orElse(np));
        System.out.printf("명령줄: %s%n", info.commandLine().orElse(np));
        System.out.printf("시작 시간: %s%n", info.startInstant()
            .map(i -> i.atZone(ZoneId.systemDefault()).toLocalDateTime().toString()).orElse(np));
        System.out.printf("인수: %s%n", info.arguments().map(a -> Stream.of(a).collect(Collectors.joining(" "))).orElse(np));
        System.out.printf("사용자: %s%n", info.user().orElse(np));
    }
}

출력

프로세스 ID: 5800
명령 이름: C:\Windows\System32\notepad.exe
명령줄: Not Present
시작 시간: 2017-11-04T21:35:03.626
인수: Not Present
사용자: administrator

java

  1. Java 연산자 마스터하기: 종류, 문법, 실전 예제
  2. Java 주석: 종류, 사용법, 모범 사례
  3. Java 향상된 for 루프(for-each) 완벽 가이드: 문법, 예제, 비교
  4. Java String 마스터하기: 생성, 메서드, 모범 사례
  5. Java 인터페이스 마스터: 개념, 구현, 모범 사례
  6. Java 익명 내부 클래스 마스터: 정의, 문법, 실전 예제
  7. Java Try-with-Resources 마스터: 자동 리소스 관리 완전 해설
  8. Java 애너테이션 완전 해설: 종류, 배치 위치, 실전 예제
  9. Java Assertion(어설션) 실전 가이드: 버그 조기 발견과 코드 신뢰성 확보
  10. Java 9 (JDK 9) – 주요 기능 및 이점