2012-12-15 57 views
0

我試圖通過java程序在gnome終端中寫入命令。我想這樣的代碼:在java中寫入gnome終端

String cmd = "ls"; 
    Runtime rt = Runtime.getRuntime(); 
    Process p = rt.exec(cmd); 

我想寫「LS」的終端,但沒有任何反應,但如果我用

String cmd = "gnome-terminal"; 

我可以打開一個新的終端窗口。 我真正想做的是從終端運行一個C程序,用java調用它。

在此先感謝。

+0

它可以使用'/ bin/ls'嗎? –

+0

不,它不.. – danielnovais92

回答

2

gnome-terminal需要-e參數,它允許您告訴它執行程序。

gnome-terminal -e /path/executable 

只需將它們放在一個String[]和調用相同的方法。

+0

感謝它工作得很好,但現在我有另一個問題,該計劃需要終端全屏,你我是如何設法做到這一點? – danielnovais92

+0

我不知道有什麼辦法以編程方式讓GNOME終端全屏運行。 –

0

如果你從一個終端內開始你的java程序的話,你叫exec()上運行後,並獲得a Process你需要調用getInputStream()讀取命令的輸出,那麼你就可以打印出來輸出到System.out。

0

我怎麼不能在這個版面閱讀: http://www.linuxquestions.org/questions/linux-general-1/run-command-in-new-gnome-terminal-185216/

可以使用

gnome-terminal -x sh -c "ls" 

打開一個終端,並執行「LS」(如果我沒記錯,在「-c」選項可以執行在一個新的終端程序。)

在這一刻我在工作,我沒有Linux X系統在這裏嘗試。對不起:)

我希望這可以幫助你!

+0

您不需要運行一個shell來運行另一個可執行文件。 –

+0

謝謝你工作得很好!你是否碰巧知道直接以全屏方式打開終端的參數? – danielnovais92

+0

嘗試在「-x」之前添加「 - 全屏」選項。 –

1

執行外部程序適用於我用下面的命令:

try 
{ 
Runtime rt = Runtime.getRuntime(); 
Process proc = rt.exec("ls -l"); 
InputStream in = proc.getInputStream(); 
OutputStream out = proc.getOutputStream(); 
InputStream err = proc.getErrorStream(); 
proc.destroy() ; 
} 

或者類似的東西在這裏解決:Executing in java code an external program that takes arguments爲好。