在运行时同时打印程序的输出

时间:2010-08-10 17:26:41

标签: java

在下面的代码中,我正在执行一个java程序Newsworthy_CA。 该程序打印Newsworthy_CA程序的输出,但我面临的困难是它只在完成Newsworthy_CA程序的执行后打印整个输出。 但是我需要在程序执行时同时打印输出。

另外,如果发生任何错误,我需要child.waitFor()来阻止程序继续。

请为我的要求建议一些好主意。提前致谢。

注意:我是Java的初学者

    command = "java Newsworthy_CA";
    Process child4 = Runtime.getRuntime().exec(command);
    try{
    c= child4.waitFor();
    } catch (Exception ex){ex.printStackTrace();}
    if (c!=0){
    System.out.println("Error Occurred in ("+command+"): "+c);
    InputStream in4 = child4.getErrorStream();
    while ((c = in4.read()) != -1) {
        System.out.print((char)c);
    }
    in4.close();
    return;
    }
    InputStream in4 = child4.getInputStream();
    while ((c = in4.read()) != -1) {
    System.out.print((char)c);
    }
    in4.close();

1 个答案:

答案 0 :(得分:1)

如果你想在外部程序执行时看到输出,你不想让InputStream块在waitFor()之上移动吗?

当您的代码读取时,您非常清楚地说要在执行任何操作之前执行并等待完成...包括打印外部程序的输出(InputStream块)。