可以说我有一个命令行程序。我希望能够从我的java程序中与之通信。我尝试了以下方法:
Process p = new ProcessBuilder(pathToProgramC).start();
in = new Scanner(new InputStreamReader(p.getInputStream()));
out = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
我想使用in和out来读取程序的输出,并写入其输入。
为澄清我的确切问题,我编写了两个最小的程序,一个用Java,一个用C,从终端来看它们的行为是相同的。 但是,以上代码在与Java版本通信时可以正常工作,但是在尝试与C版本通信时可以无限期等待。由于这两个程序从命令行相同地运行,这怎么可能?