首页 > 解决方案 > 与命令行程序通信 Java vs C

问题描述

假设我有一个命令行程序。我希望能够从我的 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 版本通信时会无限期地等待。既然这两个程序从命令行运行相同,怎么会这样呢?

标签: javacterminalprocesscommand-line-interface

解决方案


推荐阅读