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

クラスProcess

java.lang.Object
java.lang.Process

public abstract class Process extends Object
Processは、ProcessBuilder.startおよびRuntime.execによって開始されたネイティブ・プロセスの制御を提供します。 このクラスは、プロセスからの入力の実行、プロセスへの出力の実行、プロセスの完了の待機、プロセスの終了ステータスの確認、およびプロセスの(kill)の破棄を行うためのメソッドを提供します。 ProcessBuilder.start()メソッドやRuntime.execメソッドはネイティブのプロセスを作成し、Processのサブクラスのインスタンスを返しますが、これを使えば、そのプロセスを制御したり情報を取得したりできます。

たとえば、ネイティブなウィンドウ処理プロセス、デーモン・プロセス、Microsoft Windows環境でのWin16/DOSプロセス、あるいはシェル・スクリプトといったプロセスです。

デフォルトでは、作成されたプロセスには独自の端末またはコンソールがありません。 その標準入出力(つまり標準入力、標準出力、標準エラー)の処理はすべて親プロセスにリダイレクトされますが、それらの情報にアクセスするには、メソッドgetOutputStream()getInputStream()、およびgetErrorStream()を使って取得されるストリームを使用します。 文字および行のI/Oストリームは、メソッドoutputWriter()outputWriter(Charset)inputReader()inputReader(Charset)errorReader()およびerrorReader(Charset)を使用して記述および読み取ることができます。 親プロセスは、これらのストリームを使用して、プロセスへの入力およびプロセスからの出力を取得します。 一部のネイティブ・プラットフォームでは、標準入出力ストリームのバッファ・サイズが制限されているため、入力ストリームの迅速な書込みまたはプロセスの出力ストリームの読取りに失敗すると、プロセスがブロックされるか、デッドロックが発生する可能性があります。

必要に応じて、ProcessBuilderクラスのメソッドを使用する「プロセスI/Oもリダイレクトできます」

Processオブジェクトへの参照がなくなると、プロセスは強制終了されませんが、プロセスは非同期的に実行し続けます。

Processオブジェクトによって表されるプロセスが、Processオブジェクトを所有するJavaプロセスに対して非同期または同時に実行される必要はありません。

1.5以降でProcessを作成するための推奨の方法は、ProcessBuilder.start()です。

プロセスのサブクラスは、プロセスの「プロセスID」「プロセスに関する情報」「直接の子供たち」および「直接の子どもとその子孫の子孫」を含む完全に機能するプロセスを提供するために、onExit()およびtoHandle()メソッドをオーバーライドする必要があります。 基礎となるプロセスまたはProcessHandleに委任することは、通常、最も簡単で最も効率的です。

導入されたバージョン:
1.0