2010-10-27 245 views
13

我試圖從用戶讀取一個文件,其中每行是cmd.exe命令,並運行它(可以假定命令是合法的),但是當我給出像echo hi命令,我收到運行時異常錯誤:從Java執行cmd.exe命令

Exception in thread "main" java.io.IOException: Cannot run program "echo": CreateProcess error=2, The system cannot find the file specified

我試圖像這樣運行命令:

Runtime.getRuntime().exec(command); 

其中command = "echo hi"。這對於regedit這樣的命令確實有效,所以看起來我得到的運行時間就像「運行」窗口,而不是cmd。有沒有辦法運行這些命令?

回答

24

這是因爲echo不是外部可執行命令(即,除非您自己把它放在那裏,否則硬盤上沒有echo.exe文件)。這是shell的內部命令。

你可能會發現,你需要執行類似:

cmd.exe /c echo hello