モジュール java.base
パッケージ java.lang

インタフェースProcessHandle

すべてのスーパー・インタフェース:
Comparable<ProcessHandle>

public interface ProcessHandle extends Comparable<ProcessHandle>
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
関連項目: