Получить экземпляр командной строки Windows в Java

Я хочу получить экземпляр командной строки Windows в моей java-программе, чтобы пакетные команды, такие как cls, dir и т. д., можно было передавать непосредственно из моей java-программы, и я хотел бы прочитать ее вывод так же, как мы обычно передаем эту команду вручную после открытия команды Windows быстрый.

WindowsCmdInstance wcn = new WindowsCmdInstance();
CommandOp cop = new CommandOp();
cop = Cwcn.sendCommand("dir");
String readOutput = cop.readConsoleOutput();

Я ожидаю что-то вроде приведенного выше шаблона, чтобы я мог передавать пакетные команды из моей java-программы так же, как мы делали бы это вручную из командной строки Windows. Я не хочу запускать свои команды в виде файла bat, используя экземпляр среды выполнения java.

Пожалуйста помогите. Заранее спасибо!!

Хусейн


person Hussain    schedule 26.04.2013    source источник


Ответы (1)


Вы можете запускать пакетные команды, используя Runtime.getRuntime().exec("cmd /C <command string>");. Это создаст экземпляр командной строки и запустит команды. Вы можете прочитать результаты обратно, используя InputStream возвращаемого экземпляра Process.

Не уверен, что вы сможете запускать несколько команд и поддерживать состояние командной строки так же, как в стандартной командной строке: возможно, вы могли бы просто выполнить Process cmd = Runtime.getRuntime().exec("cmd");, а затем вызвать cmd.getOutputStream().write("dir".getBytes()); или что-то в этом роде.

person Femi    schedule 26.04.2013
comment
Спасибо Femi за ваш быстрый ответ, хотя я уже давно не в этом мире :) На самом деле я ищу экземпляр командной строки, который будет поддерживать свое состояние, как мы уже сделали для экземпляра оболочки Linux. То же самое я пытаюсь заставить его работать для командной строки Windows. Спасибо!! - person Hussain; 12.05.2013