最初に、サイトでこの問題に関するいくつかのQを確認しましたが、問題を解決する回答は見つかりませんでした。
私はJavaで書かれたプログラムを持っていて、それはC++で書かれたcmdプログラムを呼び出します。(実際のソースがないため、これは前提です)C++プログラムの予想されるI/ Oを知っています。コマンドでは、2行の出力であり、文字列の入力を待ちます。プログラムの最初の出力行がエラーストリームを経由していることを知っており、正しく受信します(これは予想されます)が、エラーまたは入力ストリームで2番目の行を取得しません。最初の行(エラー行)の直後にプログラムに書き込もうとしましたが、スタックしませんでしたが、応答がありませんでした。ストリームごとに3つの異なるスレッドを使用してみましたが、最初の行以降の入力/エラーストリームで何も受信されず、プログラムは出力ストリームを介した書き込みに応答しませんでした。
私の初期化子は次のとおりです。
Process p = Runtime.getRuntime().exec("c:\\my_prog.exe");
BufferedReader err = new BufferedReader(new InputStreamReader(p.getErrorStream()));
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedWriter output = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
それはまったく可能ですか、それともC ++プログラムに依存しますか?
ありがとう、Binyamin