从Java执行cmd.exe命令

Ami*_*hum 15 java windows cmd

我正在尝试从用户读取一个文件,其中每一行都是一个cmd.exe命令,并运行它(可以假设命令是合法的),但是当我给出一个命令时echo hi,我得到运行时异常错误:

线程"main"中的异常java.io.IOException:无法运行程序"echo":CreateProcess error = 2,系统找不到指定的文件

我正在尝试运行这样的命令:

Runtime.getRuntime().exec(command);
Run Code Online (Sandbox Code Playgroud)

哪里command = "echo hi".这对于像regedit这样的命令是有效的,所以我得到的运行时似乎就像"运行"窗口而不是cmd.有没有办法运行这些命令?

pax*_*blo 29

那是因为echo不是外部可执行命令(即,echo.exe你的硬盘上没有文件,除非你自己把它放在那里).这是shell的内部命令.

您可能会发现需要执行以下操作:

cmd.exe /c echo hello
Run Code Online (Sandbox Code Playgroud)