Запуск командной строки из программы Java в Windows - PullRequest
1 голос
/ 27 мая 2011

В настоящее время у меня есть следующий пакетный скрипт, который я хочу запустить из своей Java-программы:

"C: \ Program Files \ Java \ jdk1.6.0_25 \ Bin \ java.exe» -класс "D: ..." Главная> "... \ result.out"

Теперь я сделал простое

Runtime.getRuntime().exec(command);

где command - та строка, которую я показал выше. Проблема в том, что он просто вызывает java.exe с указанными аргументами, а не вызывает консоль с заданными аргументами. Разница невелика, так как если он вызывает напрямую java.exe, он игнорирует перенаправление потока вывода!

Есть ли простой способ сделать это? Я пытался добавить префикс command к "cmd", но это не помогло.

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

Спасибо

Ответы [ 2 ]

2 голосов
/ 27 мая 2011

Чтобы решить проблему, достаточно

cmd /c "command"

.

0 голосов
/ 27 мая 2011
Process proc = Runtime.getRuntime().exec("acpi -b");                            

Теперь вы можете использовать proc.getInputStream () и proc.getOutputStream () как любые обычные потоки ввода и вывода.

Затем вы можете записать содержимое в выходной файл.

Этот метод я чаще всего использую.

...