我正在尝试从Java调用C程序并捕获标准输出.这是我的代码:
try {
ProcessBuilder pb = new ProcessBuilder("helloworld.exe");
pb.redirectErrorStream(true); // Merge std out and std err into same stream
program = pb.start(); // Start program
BufferedReader input = new BufferedReader(new InputStreamReader(program.getInputStream()));
line = input.readLine();
while (line != null) {
System.out.println(line);
line = input.readLine();
}
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
这是一个示例c程序:
int main(){
printf("Hello world\n");
}
Run Code Online (Sandbox Code Playgroud)
当我正在执行的程序(在这种情况下为helloworld)中没有一个程序时getchar(),这很好用.但是,如果我getchar()在printf之后添加一个权限,我从来没有从输入流中获得任何东西.有什么想法吗?
谢谢