2010-10-27 173 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