Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java 9のJShellでpid、info、childrenを出力し、プロセスを破棄する方法は?


JShell は、クラス、メソッド、インターフェイス、列挙型、などの単純なJavaステートメントを実行するために使用されるJavaシェルツールです。 など。それを評価し、結果をコマンドラインに出力します。 プロンプト。

JavaはプロセスAPIを改善しました オペレーティングシステムのプロセスを管理および制御します。 ProcessHandle インターフェイスは、ネイティブプロセス、プロセスをチェックする方法を識別して制御します。 活気 、および破棄 プロセス 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)

  1. Java 9のJShellでスニペットを保存、編集、およびドロップする方法は?

    JavaシェルまたはJShell は公式のREPL (Read-Evaluate-Print-Loop) Java 9で導入 。すばやくプロトタイピングするためのインタラクティブなシェルを提供します 、デバッグ main()は必要ありません メソッドを実行する前にコードをコンパイルする必要はありません。 JShellは、「jshell」と入力することで簡単に開始できます コマンドプロンプトで。 スニペットを保存 / save [-all | -history | -start] を使用して、スニペットソースをファイルに保存できます。 コマンド。 C:\Users\User>jshe

  2. Java 9のJShellでクラスとオブジェクトを作成するにはどうすればよいですか?

    JShell はJava9でリリースされた新しいJavaシェルツールです。これは最初の公式のREPL (読み取り-評価-印刷-ループ ) 応用。このツールは、ステートメントなどの単純なJavaプログラムやロジックの実行と評価に役立ちます。 、ループ 、式 、など。Java REPLは、コマンドプロンプトで簡単なプログラミング環境を提供します。入力を読み取り、評価し、出力を印刷できます。 以下の例では、コマンドプロンプトを使用してJShellでクラスとオブジェクトを作成できます。 例 jshell> class Employee { ...> private String name