首先,我在网站上看到了一些关于这个问题的 Q,但没有看到任何解决我问题的答案。
我有一个用 Java 编写的程序,它调用了一个用 C++ 编写的 cmd 程序。(这是一个假设,因为我没有实际来源)我知道 C++ 程序的预期 I/O,在 cmd 中它是两行输出,然后等待字符串输入。我知道程序的第一行输出是通过错误流,我正确接收它(这是预期的),但我没有在错误或输入流中得到第二行。我试图在第一行(错误行)之后立即写入程序并且没有卡住,但没有响应。我尝试为每个流使用 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++ 程序?
谢谢,宾亚明