我编写了一个简单的C程序,并将其构建到“AskStack.exe”。Java运行时执行C语言程序得不到输出
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
getchar();
return 0;
}
然后我用java程序来执行C程序,我想得到输出。
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Test {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Process p = Runtime.getRuntime().exec("AskStack.exe");
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
do{
line = reader.readLine();
System.out.println(line);
}while(line != null);
p.waitFor();
}
}
但我失败了。 java程序没有输出任何东西。 我注意到,如果我删除C程序的getchar(),它将得到输出。 但我的目的是与C程序交互。
那么应该如何修改我的java代码呢?提前致谢。
检查错误流中的输出 – BackSlash