gpt4 book ai didi

Java - 通过输入流与子应用程序通信

转载 作者:行者123 更新时间:2023-12-01 16:02:28 25 4
gpt4 key购买 nike

有没有一种方法可以从 java 启动命令行应用程序,然后将字符串(命令)发送到其输入流并从其输出流显示其响应?

我正在使用一个具有相当复杂的命令行界面(vlc)的应用程序。该应用程序有一个解释器来响应一组命令。例如,启动应用程序后,我可以通过在命令行上发出“暂停”命令来开始或停止电影。

我想编写一个java应用程序来执行该程序并向该程序发出命令。我见过许多 Java 应用程序启动应用程序并获取应用程序的输出流以显示应用程序的输出的示例。但我从未见过 java 应用程序向子应用程序发送请求的示例。

有没有办法使用 java 来做到这一点?

提前致谢!

最佳答案

只要生成的进程监听标准输入以获取输入,就可以了。

您将启动 Process以通常的方式(Runtime.exec()) - 我不会在这里记录它,正如您所说您已经看到了很多示例。

然后,一旦您获得了生成进程的句柄,您就可以调用名称令人困惑的 getOutputStream 。这将为您提供一个 OutputStream,其另一端连接到进程的标准输入。因此,写入此流的任何字节都可以由您的子进程使用,就像您从控制台键入/管道输入一样。

我将指出一些在处理流程时始终值得阅读的资源;来自任意 Google 结果的剪切和粘贴作业通常无法正确覆盖边缘情况,并可能导致死锁:

关于Java - 通过输入流与子应用程序通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3478153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com