2014-10-17 85 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()