私の Java プログラムは ProcessBuilder (redirectErrorStream を true に設定) を使用し、ブロックしているプロセスの入力ストリームの read メソッドを実行するループを持っています。私が呼び出している外部プログラムは、入力と標準入力の待機を停止します。私は今、プロセスを殺したいと思っています。これは、(別のスレッドで) プロセスの destroy メソッドを呼び出し、入力ストリームの close メソッドを呼び出して read メソッドのブロックを停止し、最初のスレッドが寿命を尽くすようにすることによって行われませんか?
なぜかprocess.getInputStream().close()
ブロック。JavaDoc から、なぜこれが起こるのかわかりません。さらに、javadoc に「InputStream の close メソッドは何もしない」と記載されている理由がわかりません。( javadoc へのリンク) 誰か説明してくれませんか?
ありがとう :-)