2016-02-29 147 views
0
背景

我試圖打開的GNOME終端對下面的代碼與Java執行命令:開放的gnome-終端從Java

Runtime.getRuntime().exec(new String[]{"gnome-terminal", "-e", "command"}); 

但這個代碼會顯示終端的用戶,我怎麼能在後臺打開gnome-terminal?

+0

爲什麼你需要打開終端?你需要執行命令嗎? –

+0

如果我在不打開gnome-terminal的情況下運行該命令,它不能按預期工作,我運行「saned -d128」命令來發送和讀取字節。 –

+0

您可以使用'/ bin/bash'或'/ bin/sh'來執行命令,而不是'gnome-terminal'。 –

回答

0

您不需要以可視方式打開終端來執行命令。 Shell解釋器是一個您可以在沒有終端窗口的情況下調用的程序。什麼終端窗口只是發送你在終端上鍵入的內容,與底層shell解釋器交互並給出結果。當需要運行特定於操作系統的命令時,您希望直接調用所需的shell解釋器(即bash,csh,ksh),並從Java程序中獲取結果。

使用命令並從它們讀取輸出並不是那麼容易。所以我建議你看看Apache Exec這將減輕從外部調用的程序讀取數據。

+0

非常感謝,你的回答非常有幫助。 –