【问题标题】:Executing interactive shell commands in Java [duplicate]在Java中执行交互式shell命令[重复]
【发布时间】:2012-05-20 17:23:31
【问题描述】:

可能重复:
Redirect stdin and stdout in Java

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

【问题讨论】:

  • 伙计们,它不是重复的。这是另一个问题。他问的不是重定向,而是如何实现父进程和子进程之间的进程间通信。

标签: java shell


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 2012-07-03
    • 2015-02-12
    • 2011-07-08
    相关资源
    最近更新 更多