java - 在 Java 中执行交互式 shell 命令

标签 java shell

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/

相关文章:

bash - shell 脚本 : with awk, 如果找到 string0 则写入 string1,否则写入 string2

linux - 如何在 bash 脚本中读取文件时删除 1 个或多个匹配行

perl - 编辑包含模式的第一个未注释行中第一次出现的模式

java - 弗林克 SQL : Repeating grouping keys in result of GROUP BY query

java - 我不明白这是如何决定什么是素数什么不是素数

java - 用java实现存储库服务

linux - 通过 BASH 查找系统上是否可用 'which' 命令

java - 我写了一个通用的有序数组类,比较元素时插入方法出现空指针错误

java - 为什么使用 Character.isAlphabetic() 时我的字母字符没有添加到堆栈中?

bash - 在Bash脚本中,如何使用变量来设置多个命令选项?