2012-11-07 41 views
1

我想弄清楚如何使用ProcessBuilder。這個微不足道的dir甚至沒有工作。我究竟做錯了什麼?如何正確使用ProcessBuilder

Process pb = new ProcessBuilder("cmd","dir C:\\").start(); 
InputStream in = pb.getInputStream(); 
BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
String line; 
while ((line = br.readLine()) != null) { 
    System.out.println(line); 
} 

輸出只有:

的Microsoft Windows XP [版本5.1.2600](C)版權所有1985-2001 微軟公司

+0

瀏覽從[exec tag Wiki]鏈接的Java World文章(http://stackoverflow.com/tags/runtime.exec/info)。按照建議,如果這不能解決問題,它可能會爲您提供更多信息繼續。 –

+0

我還懷疑'新的ProcessBuilder(「cmd」,「dir C:\\」)。start();'應該是'new ProcessBuilder(「cmd」,「dir」,「C:\\」)。start );' –

+0

@AndrewThompson:好的,但我沒有使用'Runtime#exec' – Jim

回答

3

嘗試

Process p = new ProcessBuilder("cmd", "/C", "dir") 

Dir是shell的命令。/C通知shell解釋參數。

+0

+1用於解決pb - @Jim用「'cmd /?'」查看命令參數。 –