2012-05-20 76 views
-1

可能重复:
Redirect stdin and stdout in Java执行交互shell命令

我知道如何在Java中执行shell命令,但如何做到这一点,所以我的应用程序可以写入它的输入和从其输出中读取。

+1

伙计,它不是重复的。这是另一个问题。他不问重定向,而是如何实施父母与子女过程之间的流程到流程沟通。 – AlexR

回答

2

我认为你甚至解释了你的问题的答案。

当您使用Runtime.exec()ProcessBuilder从java运行外部应用程序时,您可以访问标准输出流和标准输入流。用户输入流来读取外部应用程序写入和输出流以将命令发送到外部应用程序。

但要小心。某些应用程序不会从java发送您的命令。例如,Unix系统中的命令ssh被设计为避免其被非人类用户(例如,其他应用)使用。它出于安全原因需要从终端执行,因此您不能运行ssh otherhost,然后从java发送用户/密码。如果你需要这个,你必须通过命令expect的其他命令行实用程序来运行该命令,该实用程序模拟终端并由脚本驱动。