- すべてのスーパー・インタフェース:
- Comparable<ProcessHandle>
Processインスタンスは現在のプロセスによって起動され、さらにプロセスの入力、出力およびエラー・ストリームへのアクセスを提供します。 
 ネイティブ・プロセスIDは、オペレーティング・システムがプロセスに割り当てる識別番号です。 プロセスID値の範囲は、オペレーティング・システムによって異なります。 たとえば、組み込みシステムでは16ビット値を使用できます。 プロセスに関するステータス情報は、ネイティブ・システムから取得され、非同期的に変更される可能性があります。プロセスは、自発的に作成または終了できます。 プロセスが終了し、プロセスIDが新しいプロセスに再使用されるまでの時間は予測できません。 競合状態は、プロセスのステータスのチェックとそれに対する処理の間に存在できます。 ProcessHandlesを使用すると、基礎となるプロセスの存続性またはアイデンティティに関する仮定を回避できます。
 各ProcessHandleは、ネイティブ・システム内のプロセスを識別し、制御できます。 ProcessHandlesは、ファクトリ・メソッドcurrent()、of(long)、children()、descendants()、parent()、allProcesses()から返されます。 
 
 ProcessBuilderによって作成されたProcessインスタンスは、プロセスに関する情報を提供するProcessHandleに対して問い合せることができます。 ProcessHandle参照は自由に配布しないでください。 
 
 onExit()から使用可能なCompletableFutureを使用して、プロセスの終了を待機し、依存アクションをトリガーできます。
 
 ファクトリ・メソッドは、RuntimePermission("manageProcess")をチェックするSecurityManagerを使用してProcessHandlesへのアクセスを制限します。 プロセスを制御する機能は、ネイティブ・システムによっても制限されます。ProcessHandleは、ネイティブ・アプリケーションによって許可されるよりも、ネイティブ・プロセスへのアクセスや制御を行いません。 
- 実装要件:
- ProcessHandlesがサポートされない場合、ファクトリ・メソッドは一貫してUnsupportedOperationExceptionをスローする必要があります。 オペレーティング・システムがプロセスの問合せまたは強制終了へのアクセスを許可していない場合、このクラスのメソッドはUnsupportedOperationExceptionをスローします。ProcessHandle静的ファクトリ・メソッドは、value-based、不変およびスレッド・セーフであるインスタンスを返します。 プログラマは、equalのインスタンスを交換可能として処理し、同期にインスタンスを使用しないようにする必要があります。そうしないと、予期しない動作が発生する可能性があります。 たとえば、将来のリリースでは、同期が失敗する可能性があります。equalsまたはcompareToメソッドを使用して、ProcessHandlesを比較します。
- 導入されたバージョン:
- 9
- 関連項目:
- 
ネストされたクラスのサマリーネストされたクラス
- 
メソッドのサマリー修飾子と型メソッド説明static Stream<ProcessHandle> 現在のプロセスに表示されるすべてのプロセスのスナップショットを返します。children()プロセスの現在の直接の子のスナップショットを返します。intcompareTo(ProcessHandle other) このProcessHandleを、指定されたProcessHandleと順序を比較します。static ProcessHandlecurrent()現在のプロセスのProcessHandleを返します。プロセスの子孫のスナップショットを返します。booleandestroy()プロセスを強制終了するようにリクエストします。booleanプロセスを強制的に強制終了するようにリクエストします。booleanotherオブジェクトがnull以外で、実装が同じで、同じシステム・プロセスを表す場合はtrueを戻し、それ以外の場合はfalseを戻します。inthashCode()このProcessHandleのハッシュ・コード値を返します。info()プロセスに関する情報のスナップショットを返します。booleanisAlive()このProcessHandleによって表されるプロセスが動作しているかどうかをテストします。static Optional<ProcessHandle> of(long pid) 既存のネイティブ・プロセスのOptional<ProcessHandle>を返します。onExit()プロセスの終了についてCompletableFuture<ProcessHandle>を返します。parent()親プロセスのOptional<ProcessHandle>を返します。longpid()プロセスのネイティブ・プロセスIDを返します。booleandestroy()の実装が通常プロセスを終了する場合は、trueを返します。
- 
メソッドの詳細- 
pidlong pid()プロセスのネイティブ・プロセスIDを返します。 ネイティブ・プロセスIDは、オペレーティング・システムがプロセスに割り当てる識別番号です。 オペレーティング・システムは、プロセスの終了後にプロセスIDを再利用できます。 ProcessHandlesを比較するには、equalsまたはcompareToを使用します。- 戻り値:
- プロセスのネイティブ・プロセスID
- スロー:
- UnsupportedOperationException- 実装がこの操作をサポートしていない場合
 
- 
ofstatic Optional<ProcessHandle> of(long pid) 既存のネイティブ・プロセスのOptional<ProcessHandle>を返します。- パラメータ:
- pid- ネイティブ・プロセスID
- 戻り値:
- プロセスのPIDのOptional<ProcessHandle>。プロセスが存在しない場合、Optionalは空です。
- スロー:
- SecurityException- セキュリティ・マネージャがインストールされていて、RuntimePermission("manageProcess")を拒否した場合
- UnsupportedOperationException- 実装がこの操作をサポートしていない場合
 
- 
currentstatic ProcessHandle current()現在のプロセスのProcessHandleを返します。 ProcessHandleは現在のプロセスの破棄には使用できません。かわりにSystem.exitを使用してください。- 戻り値:
- 現在のプロセスのProcessHandle
- スロー:
- SecurityException- セキュリティ・マネージャがインストールされていて、RuntimePermission("manageProcess")を拒否した場合
- UnsupportedOperationException- 実装がこの操作をサポートしていない場合
 
- 
parentOptional<ProcessHandle> parent()親プロセスのOptional<ProcessHandle>を返します。 ゾンビ状態のプロセスは、通常、親を持たないことに注意してください。- 戻り値:
- 親プロセスのOptional<ProcessHandle>。Optionalは、子プロセスに親がない場合、または親が使用できない場合は、オペレーティング・システムの制限が原因で空になります
- スロー:
- SecurityException- セキュリティ・マネージャがインストールされていて、RuntimePermission("manageProcess")を拒否した場合
 
- 
childrenStream<ProcessHandle> children()プロセスの現在の直接の子のスナップショットを返します。 直接の子プロセスのparent()がプロセスです。 通常、not aliveのプロセスは子を持ちません。プロセスが作成され、非同期で終了するNote。 プロセスが aliveである保証はありません。- 戻り値:
- プロセスの直接の子プロセスであるプロセスの一連のProcessHandle
- スロー:
- SecurityException- セキュリティ・マネージャがインストールされていて、RuntimePermission("manageProcess")を拒否した場合
 
- 
descendantsStream<ProcessHandle> descendants()プロセスの子孫のスナップショットを返します。 プロセスの子孫は、プロセスの子とそれらの子の子孫です。 通常、not aliveのプロセスは子を持ちません。プロセスが作成され、非同期で終了するNote。 プロセスが aliveである保証はありません。- 戻り値:
- プロセスの子孫であるプロセスのProcessHandlesの連続ストリーム
- スロー:
- SecurityException- セキュリティ・マネージャがインストールされていて、RuntimePermission("manageProcess")を拒否した場合
 
- 
allProcessesstatic Stream<ProcessHandle> allProcesses()現在のプロセスに表示されるすべてのプロセスのスナップショットを返します。プロセスが作成され、非同期で終了するNote。 ストリーム内のプロセスが動作していること、またはスナップショットの開始以降に他のプロセスが作成されていないという保証はありません。 - 戻り値:
- すべてのプロセスのProcessHandleのストリーム
- スロー:
- SecurityException- セキュリティ・マネージャがインストールされていて、RuntimePermission("manageProcess")を拒否した場合
- UnsupportedOperationException- 実装がこの操作をサポートしていない場合
 
- 
infoProcessHandle.Info info()プロセスに関する情報のスナップショットを返します。ProcessHandle.Infoインスタンスには、プロセスに関する情報(使用可能な場合)を返すアクセサ・メソッドがあります。- 戻り値:
- プロセスに関する情報のスナップショット(常にnull以外)
 
- 
onExitCompletableFuture<ProcessHandle> onExit()プロセスの終了についてCompletableFuture<ProcessHandle>を返します。CompletableFutureは、プロセスの終了時に同期または非同期に実行できる依存ファンクションまたはアクションをトリガーする機能を提供します。 プロセスが終了すると、プロセスの終了ステータスに関係なく、CompletableFutureはcompletedになります。onExitメソッドを複数回呼び出して、プロセスの終了時に独立したアクションを呼び出すことができます。onExit().get()をコールすると、プロセスが終了するまで待機し、ProcessHandleが返されます。 将来は、プロセスがdoneかwaitかをチェックして終了するために使用できます。 CompleteableFutureのCancellingはプロセスに影響しません。- APIのノート:
- ComputableFutureが完了して依存アクションが起動される前に、プロセスがisAlive()で終了していることがわかります。
- 戻り値:
- ProcessHandle用の新しいCompletableFuture<ProcessHandle>
- スロー:
- IllegalStateException- プロセスが現在のプロセスである場合
 
- 
supportsNormalTerminationboolean supportsNormalTermination()destroy()の実装が通常プロセスを終了する場合は、trueを返します。destroyの実装が強制的に終了し、すぐにプロセスを終了する場合は、falseを返します。
- 
destroyboolean destroy()プロセスを強制終了するようにリクエストします。 このProcessHandleオブジェクトによって表されるプロセスがnormally terminatedかどうかは、実装に依存します。 強制的なプロセス破棄は、プロセスの即時終了として定義されますが、通常終了では、プロセスは正常に停止できます。 プロセスが動作していない場合、アクションは実行されません。 オペレーティング・システムのアクセス制御によって、プロセスが強制終了されない場合があります。プロセスが終了すると、 onExit()のCompletableFutureはcompletedになります。ノート: プロセスはすぐには終了できません。 たとえば、 isAlive()は、destroy()がコールされた後の短い期間に対してtrueを返す場合があります。- 戻り値:
- 終了が正常にリクエストされた場合はtrue、それ以外の場合はfalse
- スロー:
- IllegalStateException- プロセスが現在のプロセスである場合
 
- 
destroyForciblyboolean destroyForcibly()プロセスを強制的に強制終了するようにリクエストします。 このProcessHandleオブジェクトで表されるプロセスは強制的に終了します。 強制的なプロセス破棄は、プロセスの即時終了として定義されますが、通常終了では、プロセスは正常に停止できます。 プロセスが動作していない場合、アクションは実行されません。 オペレーティング・システムのアクセス制御によって、プロセスが強制終了されない場合があります。プロセスが終了すると、 onExit()のCompletableFutureはcompletedになります。ノート: プロセスはすぐには終了できません。 たとえば、 isAlive()は、destroyForcibly()がコールされた後の短い期間に対してtrueを返す場合があります。- 戻り値:
- 終了が正常にリクエストされた場合はtrue、それ以外の場合はfalse
- スロー:
- IllegalStateException- プロセスが現在のプロセスである場合
 
- 
isAliveboolean isAlive()このProcessHandleによって表されるプロセスが動作しているかどうかをテストします。 プロセスの終了は、実装およびオペレーティング・システム固有です。 プロセスは、PIDが有効であるかぎり、存続中とみなされます。- 戻り値:
- このProcessHandleオブジェクトによって表されるプロセスがまだ終了していない場合はtrue
 
- 
hashCodeint hashCode()このProcessHandleのハッシュ・コード値を返します。 hashcode値は、Object.hashCode()の一般規約に従います。 この値は、pid()値の関数であり、プロセスを一意に識別するための追加情報の関数である場合があります。 2つのProcessHandlesがequalsメソッドに従って等しい場合、2つのオブジェクトのそれぞれでhashCodeメソッドをコールすると、同じ整数の結果が生成される必要があります。
- 
equalsboolean equals(Object other) otherオブジェクトがnull以外で、実装が同じで、同じシステム・プロセスを表す場合はtrueを戻し、それ以外の場合はfalseを戻します。- オーバーライド:
- equals、クラス- Object
- 実装上のノート:
- 同じPIDを持つProcessHandlesが同じシステム・プロセスを表すかどうかは、実装固有です。 ProcessHandle実装には、プロセスを一意に識別するための追加情報が含まれている必要があります。 たとえば、プロセスの開始時間を使用して、PIDが再使用されたかどうかを判断できます。 equalsの実装は、区別する情報がないかぎり、同じPIDを持つ2つのProcessHandlesに対してtrueを返す必要があります。
- パラメータ:
- other- 別のオブジェクト
- 戻り値:
- otherオブジェクトがnullでない場合、- trueは、同じ実装クラスに属し、同じシステム・プロセスを表します。それ以外の場合は、- falseを返します
- 関連項目:
 
- 
compareToint compareTo(ProcessHandle other) このProcessHandleを、指定されたProcessHandleと順序を比較します。 順序は指定されませんが、Object.equals(java.lang.Object)と一致します。これは、ProcessHandleの2つのインスタンスが同じ実装で、同じシステム・プロセスを表す場合にのみtrueを返します。 比較は、同じ実装のオブジェクト間でのみサポートされます。ProcessHandleの2つの異なる実装を相互に比較しようとすると、ClassCastExceptionがスローされます。- 定義:
- インタフェースComparable<ProcessHandle>内のcompareTo
- パラメータ:
- other- 比較されるProcessHandle
- 戻り値:
- このオブジェクトが指定されたオブジェクトより小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数
- スロー:
- NullPointerException- 指定されたオブジェクトがnullの場合
- ClassCastException- 指定されたオブジェクトがこのオブジェクトと同じクラスでない場合
 
 
-