Java Runtime.getRuntime()。exec + Ant不起作用

时间:2015-03-02 14:30:40

标签: java ant command

我发现了非常危险的错误。

我有一个代码:

private static void run(String command)
    {
        try {
            Process proc = Runtime.getRuntime().exec(command);
            proc.waitFor();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

我运行下一行自动编译应用程序

run("C:\\Ant\\bin\\ant.bat -f " + projectPath + " release");

当它第一次编译时,一切都很好,但是当我再次执行时,ant冻结并且proc.waitFor()永远不会完成。另外,在编译之后,我通过ant

清理目录
run("C:\\Ant\\bin\\ant.bat clean -f " + projectPath);

首先,我认为我在某处犯了错误,但没有。更改run()后:

private static void run(String command)
    {
        try {
            Process proc = Runtime.getRuntime().exec(command);
            BufferedReader r = new BufferedReader(new InputStreamReader(proc.getInputStream()));
            String tmp;
            while((tmp = r.readLine()) != null)
            {
                //System.out.println("> " + tmp);
            }
            proc.waitFor();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

它有效!因此,当禁用日志记录时,没有任何工作和经文,当它启用时,应用程序正常工作,蚂蚁完成。有人为什么会这样,以及如何修复它?

0 个答案:

没有答案