Выполнение команд 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