2014-10-17 6 views
1

Я хочу, чтобы мои внешние программные программы Java Programm 3 выполнялись. Но их следует запускать НЕ параллельно. Программа 1 должна выводить файл, этот файл является входом для программы 2, выход для программы 2 должен быть входом для программы 3. И программа Java не должна заканчиваться, когда внешние программы заканчиваются: это мой код, но он не работа. Может кто-нибудь помочь мне!Запуск внешних программ в Java

boolean var = true; 
ProcessBuilder processBuilder = new ProcessBuilder("cmd", "/c", 
       "start", "C:\\Users\\Rosina\\Desktop\\Riss\\winlibs\\riss3g64", "C:\\Users\\Rosina\\Desktop\\out.cnf", "C:\\Users\\Rosina\\Desktop\\pruv.txt"); 
     Process process = processBuilder.start(); 
     while(program.exists() && var) { 
     ProcessBuilder processBuilder3 = new ProcessBuilder("cmd", "/c", 
       "start", "C:\\Users\\Rosina\\Desktop\\Riss\\winlibs\\riss3g64", "C:\\Users\\Rosina\\Desktop\\out1.cnf", "C:\\Users\\Rosina\\Desktop\\hahaaaaaaaaaaaaaaafffa2.txt"); 
     Process process2 = processBuilder3.start(); 
     var = false; 

     } 

Если Programm 1 не производят вывод, программа файл не существует, и Programm 2 не может начать выполнение ... где моя ошибка ... код не работает ...

+1

[Process.waitFor()] (http://docs.oracle.com/javase/7/docs/api/java/lang/Process .html # waitFor% 28% 29) поможет вам добиться последовательного выполнения программ. – hmjd

ответ

1

Вам нужно подождать завершения процесса, который вы запустили. Вы можете блокировать текущий поток выполнения, пока процесс не завершится с

process.waitFor() 
Смежные вопросы