JShell 클래스, 메소드, 인터페이스, 열거형 과 같은 간단한 Java 문을 실행하는 데 사용되는 Java Shell 도구입니다. 등. 평가하고 결과를 명령줄에 인쇄합니다. 프롬프트.
Java는 Process API를 개선했습니다. 운영 체제 프로세스를 관리하고 제어합니다. 프로세스 핸들 인터페이스는 기본 프로세스, 프로세스 를 확인하는 방법을 식별하고 제어합니다. 생동감 , 파기 프로세스 . ProcessHandle.Info 인터페이스는 정보 스냅샷 을 제공합니다. 프로세스입니다.
아래 코드 스니펫에서 pid를 인쇄할 수 있습니다. , 정보 , 어린이 , 및 파괴 프로세스 의 프로세스 API .in JShell 도구.
스니펫
jshell> ProcessHandle currentProcess = ProcessHandle.current(); currentProcess ==> 3960 jshell> System.out.println("Current Process Id: = " + currentProcess.pid()); Current Process Id: = 3960 jshell> currentProcess.info(); $3 ==> [user: Optional[Tutorialspoint\User], cmd: C:\Program Files\Java\jdk-9.0.4\bin\java.exe, startTime: Optional[2020-05-03T06:43:37.510Z], totalTime: Optional[PT1.265625S]] jshell> currentProcess.pid(); $4 ==> 3960 jshell> ProcessHandle.of(3960) $5 ==> Optional[3960] jshell> $5.get() $6 ==> 3960 jshell> $6.info() $7 ==> [user: Optional[Tutorialspoint\User], cmd: C:\Program Files\Java\jdk-9.0.4\bin\java.exe, startTime: Optional[2020-05-03T06:43:37.510Z], totalTime: Optional[PT1.390625S]] jshell> Stream<ProcessHandle> childProc = ProcessHandle.current().children(); childProc ==> java.util.stream.ReferencePipeline$2@6895a785 jshell> childProc.count() $10 ==> 1 jshell> childProc.forEach(procHandle -> { System.out.println(procHandle.destroy() ? "Could not kill process " + procHandle.pid() : "Terminated " + procHandle.pid()); }); | java.lang.IllegalStateException thrown: stream has already been operated upon or closed | at AbstractPipeline.evaluate (AbstractPipeline.java:229) | at ReferencePipeline.forEach (ReferencePipeline.java:430) | at (#11:1)