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)