Possible Duplicate:
Redirect stdin and stdout in Java
我知道如何在 Java 中执行 shell 命令,但如何做到这一点以便我的应用程序可以写入其输入并从其输出中读取。
最佳答案
我认为您甚至已经在问题中解释了答案。
当您使用 Runtime.exec() 或 ProcessBuilder 从 java 运行外部应用程序时,您可以访问标准输出和标准输入流。用户输入流用于读取外部应用程序写入的内容,输出流用于向外部应用程序发送命令。
但是要小心。某些应用程序不会获取从 java 发送的命令。例如,Unix系统中的命令ssh
旨在避免非人类用户(例如其他应用程序)使用它。出于安全原因,它需要从终端执行,因此您不能运行 ssh otherhost ,然后从 java 发送用户/密码。如果您需要这个,您必须通过其他名为 expect
的命令行实用程序运行该命令,该实用程序模拟终端并由脚本驱动。
关于java - 在 Java 中执行交互式 shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10675573/