2009-11-03 33 views

回答

2

您應該看看Runtime類,以及它的exec()系列方法。

最好是明確指定要通過shell運行命令,即創建a command line,如"bash -c 'my command'"

+0

-1不要使用Runtime,只需要ProcessBuilder。 – 2009-11-03 09:36:53

+0

@Aaron Digulla:你可以擴展爲什麼? – 2009-11-03 09:38:28

+0

@Montecristo:請參閱http://java.sun.com/developer/JDCTechTips/2005/tt0727.html#2 – ChristopheD 2009-11-03 10:12:51

1

執行的過程是這樣

Runtime.getRuntime().exec("ls"); 

...那麼你可以得到過程輸入流並用讀卡器讀取它獲得響應

5

看一看的ProcessBuilder - example here

+0

或者在本站點搜索「java processbuilder」 – 2009-11-03 09:38:01

0

請參閱Runtime類和exec()方法。

請注意,您需要同時使用該進程的stdout/sterr ,否則您將獲得特殊的阻止行爲。有關更多信息,請參閱this answer

0

我寫了一個小班級要做到這一點非常類似的問題幾個星期前:

java shell for executing/coordinating processes?

類基本上讓你做的事:

ShellExecutor excutor = new ShellExecutor("/bin/bash", "-s"); 
    try { 
      System.out.println(excutor.execute("ls/| sort -r")); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    }