2013-03-08 45 views
0

爲什麼的ProcessBuilder和CMD

ProcessBuilder pb = new ProcessBuilder("cmd","/C","dir"); 

工作,但

ProcessBuilder pb = new ProcessBuilder("cmd","dir"); 

沒有。
我的意思是在後一種情況下,cmd開始,但目錄列表不會發生。爲什麼?

+0

什麼不行?是否引發錯誤?哪一個? – 2013-03-08 09:38:00

回答

4

這是cmd.exe正常行爲 - 同樣的情況在命令行上:

C:\>cmd dir 
Microsoft Windows [Version 6.1.7601] 
Copyright (c) 2009 Microsoft Corporation. All rights reserved. 
C:\>cmd /c dir 
Volume in drive C is System 
Volume Serial Number is ABCD-EF10 
... 

第一次調用,您要創建一個新的(交互)命令解釋程序,cmd.exe 。 有了第二個電話,您要創建一個新的命令解釋程序,並告訴它執行給定的命令,然後退出:

/C  Carries out the command specified by string and then terminates 
2

因爲cmd.exe作品那樣。在命令窗口中試試這個:

cmd dir 

cmd /C dir 

也看看help cmd一個解釋。