使用Java运行带子进程的程序

时间:2013-08-01 11:00:32

标签: java cmd exec

我需要从我的Java应用程序运行用C编写的外部程序。 我试图使用Runtime.getRuntime().exec()取得部分成功。我使用带有.exe文件路径的String执行程序及其参数:

Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);

BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));

        String line=null;

        while((line=input.readLine()) != null) {
            log.info(line);
        }

        int exitVal = pr.waitFor();

这样可以正常工作 - 程序执行并将有关其行为的信息发送到控制台。问题是外部程序在执行期间尝试运行其他子程序。基本上我需要做的是:我用我的Java应用程序运行program.exeprogram.exe运行subprogram.exe。不幸的是,情况并非如此,因为subprogram.exe永远不会在当前情况下开始。 我应该采取哪些不同的方式来使其发挥作用?谢谢你的帮助。

我决定让它变得如此复杂,我很乐意只有一个.exe文件来执行,但我不能。

1 个答案:

答案 0 :(得分:0)

尝试从cmd.exe(即命令提示符)运行它,看看它是否正常工作。控制台输出应该为您提供程序执行的跟踪。