Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > запуск .bat файла c помошью java


Автор: Entwickler 16.1.2012, 17:40
Всем привет,

есть BAT файл, который я запускаю таким образом:

Код

try {
    Process p = Runtime.getRuntime().exec("cmd /c D:/ServerTest/startInstance.bat");
            
    InputStream is = p.getInputStream();
        int i = 0;
        while( (i = is.read() ) != -1) {
            System.out.print((char)i);
        }

    p.waitFor();

} catch (Exception e) {
    e.printStackTrace();
}


так вот всё прекрассно работает, только вот в чём вопрос: КАКИМ образом InputStream!!! влияет на исполнение этой процедуры? Потому что если я while{...} комментирую, то ничего не работает, только javaw процесс появляется в Процессах...

Автор: Pretorian 16.1.2012, 17:58
Насколько я понимаю, когда вызываются проргаммы из Java, некоторые из них пытаются писать какую-то информацию и пока её не прочесть, с помощью InputStream, программа не будет дальше работать, как-то так))
вот похожая тема http://forum.vingrad.ru/forum/topic-339491/unread-1/kw-arj-exe-runtime-process-waitfor.html

Автор: Entwickler 16.1.2012, 18:47
а Ok, http://stackoverflow.com/questions/2150723/process-waitfor-threads-and-inputstreams так же объесняет причину...

всем спасибо!!!!

Добавлено через 29 секунд
закрываю....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)