如何在执行时立即显示存储在.txt 文件中的.java 文件的编译结果?

How to display the result of compilation of a .java file stored in a .txt file immediatly on execution?

假设我有一个程序 A。在这个程序 A 中,我正在编译程序 B 并将结果存储在一个文件中 "Error.txt"。代码如下:

import java.io.IOException;
public class CompileFile
{   
    public void Compile() throws IOException
    {
        ProcessBuilder p = new ProcessBuilder("cmd.exe", "/C", "javac *.java 2> Error.txt");

        p.start();
    }   
}

现在,我必须从程序 A 中显示 "Error.txt" 的内容。我使用的是简单的 FileReader + BufferedReader。但是,我没有得到任何输出。

Error.txt 文件确实包含编译 errors/result,但这发生在 AFTER 程序 A 完成执行。在执行程序 A 时它保持为空。因此,我第一次没有结果我运行程序A。

如何解决这个问题?

注意:这是我上一个问题 的后续问题。有需要可以参考一下

您必须在开始 ProcessBuilder 后使用 waitFor :

public static void main(String[] args) throws IOException, InterruptedException {

    ProcessBuilder p = new ProcessBuilder("cmd.exe", "/C", 
            "javac path\of_your_file\file.java 2> path\of_your_file\Error.txt");
    Process process = p.start();
    process.waitFor();//wait until your process finished 

    Scanner in = new Scanner(Paths.get("path\of_your_file\Error.txt"));
    while (in.hasNextLine()) {
        String line = in.nextLine();
        System.out.println(line);
    }
}