2012-03-22 4 views
0

Я создал сценарий java, который использует runtime.exec() для выполнения командного файла, и это работает отлично, но когда я получаю выходной поток и использую функцию write(), это не выполняет команду, которую я вставлял в нее.Java - Выполнение команд в пакетном файле

Runtime runtime = Runtime.getRuntime(); 
Process p; 
p = runtime.exec("cmd /c start batchfile.bat");  
out = p.getOutputStream(); 
out.write("command".getBytes()); 

Он отображает пакетный файл, но не выполняет команду, есть еще один способ ввода команды в CMD запустить пакетный файл, так что он отображает его?

+0

Ожидаете ли вы, что batchfile.bat отобразит вашу команду или вы хотите, чтобы cmd это сделал? – GETah

ответ

-1

Вы записываете выходной поток. Я думаю, вы хотите написать входной поток.

Попробуйте это:

Runtime runtime = Runtime.getRuntime(); 
Process p; 
p = runtime.exec("cmd /c start batchfile.bat");  
in = p.getInputStream(); 
in.write("command".getBytes()); 
+0

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

0

С помощью команды запуска, будет открыто отдельное окно командной строки, и любой выход из пакетного файла будет отображаться там. Он также должен работать как cmd/c build.bat, и в этом случае вы можете прочитать вывод из подпроцесса в Java, если это необходимо.

+0

Пакетный файл, который вызывает файл jar, создает файл журнала, и для чтения вывода я использую его, который отлично работает и обновляется, когда есть новый вывод, все, что я пытаюсь сделать, это отправить ему команду, как вы бы набрали это в CMD. – matthew9090

+0

Хм точно не знаю, что вы пытаетесь сделать, может быть, что-то вроде ProcessBuilder? http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/ProcessBuilder.html – Dan675

+0

Im пытается создать оболочку сервера minecraft http://www.minecraftwiki.net/wiki/Programs_and_editors/ Server_wrappers - это новичок в java, но не уверен, что im подходит к этому правильному пути. – matthew9090

Смежные вопросы