在Java中执行交互式shell命令

时间:2012-05-20 17:23:32

标签: java shell

  

可能重复:
  Redirect stdin and stdout in Java

我知道如何在Java中执行shell命令但是如何执行它以便我的应用程序可以写入其输入并从其输出中读取。

1 个答案:

答案 0 :(得分:2)

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

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

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