2012-05-20 258 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的其他命令行實用程序來運行該命令,該實用程序模擬終端並由腳本驅動。