Java コードで外部プログラムを呼び出したいのですが、Google は、Runtime または ProcessBuilder がこの作業を支援してくれると教えてくれました。私はそれを試しましたが、Javaプログラムが終了できないという問題が発生しました。つまり、サブプロセスと親プロセスの両方が永遠に待機します。それらはハングしているか、デッドロックしています。
サブプロセスのキャッシュが小さすぎることが理由だと誰かが教えてくれました。親プロセスにデータを返そうとしたが、親プロセスが時間内にデータを読み取れなかった場合、両方ともハングします。そのため、サブプロセスのキャッシュデータの読み取りを担当するスレッドをフォークするようにアドバイスされています。彼らの言う通りにやっているのですが、まだ問題があります。
次に、getOutputStream() メソッドで取得した出力ストリームを閉じます。最後に、プログラムの成功。しかし、なぜそれが起こるのかわかりませんか?出力蒸気と入力ストリームの間に何らかの関係がありますか?