こんにちは、C++プログラム用のJava GUIをビルドしています。私はちょっと、exeファイルを呼び出すProcessBuilderに固執しています。Java ProcessBuilder EXEファイルが正しく入力ストリームを取得しない
私はちょうどこのProcessBuilderをする事をテストし、私はI/Oストリームを制御できるかどうかを確認するためにC++で、この小さなプログラムを作った次のように
#include <cstdlib>
#include<stdio.h>
int main(int argc, char** argv) {
int testInteger;
int a = 1;
while (a==1){
printf("Enter an integer: ");
scanf("%d",&testInteger);
if (testInteger == 0){
printf("Quitting program!");
return 0;
}else{
printf("You entered the number = %d\n",testInteger);
}
}
return 0;
}
私のJavaコードは次のとおりです。
public static void main(String[] args) throws InterruptedException, IOException{
ProcessBuilder pb = new ProcessBuilder("./i_o_test");
Process process = pb.start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line=br.readLine()) != null){
System.out.println(line);
}
}
コードはエラーを表示せず、whileループでハングします。それは何も印刷しません。 このコードは "echo"のようなコマンドでうまく動作するので、ここで何が間違っているのか分かりません。
事前に
おかげで、 Maarc〜
私はそれぞれのprintfの最後に "\ n"を追加しようとしましたが、それでも動作しません。whileループにはまっています。これは、改行を促すことでどういう意味ですか? –