Executing cmd.exe commands from Java

cmd, java, windows

Solution

That's because `echo` is not an external executable command (i.e., there is no `echo.exe` file on your hard disk, unless you put it there yourself). It's an internal command of the shell.

You'll probably find that you need to execute something like:

cmd.exe /c echo hello

Problem

I'm trying to read a file from the user, in which each line is a `cmd.exe` command, and run it (it's okay to assume the commands are legal), but when I give a command like `echo hi`, I get runtime exception error: Exception in thread "main" java.io.IOException: Cannot run program "echo": CreateProcess error=2, The system cannot find the file specified I'm trying to run the commands like this: ``` Runtime.getRuntime().exec(command); ``` where `command = "echo hi"`. This does work for commands like `regedit` though, so it seems the runtime I'm getting is like the "run" window and not cmd. Is there a way to run these commands?

Original source