用Java运行外部程序

时间:2014-10-17 14:41:11

标签: java process external

我希望我的Java Programm 3外部程序运行。但它们应该并行运行。程序1应该输出一个文件,这个文件是程序2的输入,程序2的输出应该是程序3的输入。当外部程序终止时,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 个答案:

答案 0 :(得分:1)

您需要等待启动的流程才能完成。您可以阻止当前执行的线程,直到进程完成

process.waitFor()