Выполнение команд cmd.exe из Java

Я пытаюсь прочитать файл у пользователя, в котором каждая строка представляет собой команду cmd.exe, и запускать ее (это нормально, если команды допустимы), но когда я даю команду вроде echo hi, Я получаю ошибку исключения времени выполнения:

Исключение в потоке "main" java.io.IOException: не удается запустить программу "echo": CreateProcess error = 2, система не может найти указанный файл

Я пытаюсь запустить команды следующим образом:

Runtime.getRuntime().exec(command);

где command = "echo hi". Это работает для команд типа regedit, хотя, похоже, что время выполнения, которое я получаю, похоже на окно "run", а не cmd. Есть ли способ запустить эти команды?

Ответ 1

Это потому, что echo не является внешней исполняемой командой (т.е. на вашем жестком диске нет файла echo.exe, если вы не разместите его сами). Это внутренняя команда оболочки.

Вероятно, вы обнаружите, что вам нужно выполнить что-то вроде:

cmd.exe /c echo hello