java - 与命令行程序通信 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 版本通信时会无限期地等待。既然这两个程序从命令行运行相同,怎么会这样呢?
解决方案
推荐阅读
- gulp - Gulp Watch 仅用于在线时间处理?我的意思是手表更改我需要继续打开 ssh 窗口?
- spring-boot - 解析HTTP请求参数
- javascript - node.js/express 中的字符串限制
- javascript - 为什么 safari,ie 和 yandex 不加载空白页面而不是响应应用程序
- python - 使用特定后缀和前缀的所有数据帧制作字典
- android - 即使我的规则看起来正确,firebase 数据库权限也被拒绝
- reactjs - 通过 hoc 从子组件中获取道具
- google-api - 无法使用服务帐户将与会者添加到谷歌日历
- jquery - 提高 jQuery 处理大量 DOM 的性能
- file - 如何从 Dart/Flutter 中的文件中读取对象列表