2014-10-17 150 views
1

我希望我的Java程序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 2014-10-17 14:45:16

回答

1

您需要等待您啓動的過程才能完成。您可以阻止當前的執行線程,直到過程完成爲止

process.waitFor()