繁体   English   中英

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

[英]Java - communicating with a sub app through the input stream

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

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

我想编写一个执行该程序并向该程序发出命令的Java应用程序。 我已经看到了许多Java应用程序示例,这些示例启动了应用程序并获得了显示应用程序输出的应用程序输出流。 但是我从未见过一个示例,其中Java应用程序会将请求发送到子应用程序。

有没有一种方法可以使用Java做到这一点?

提前致谢!

当然,只要产生的进程在stdin上侦听输入。

您将以通常的方式启动一个流程Runtime.exec() )-我不会在此处进行记录,因为您说您已经看到很多示例。

然后,一旦有了生成的进程的句柄,就可以调用名称混乱的getOutputStream 这为您提供了OutputStream ,其另一端连接到流程的标准输入。 因此,子进程可以消耗写入此流的任何字节,就像您从控制台键入/管道输入一样。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM