2012-11-07 52 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 /?'”查看命令参数。 –