Java 如何从正在运行的进程中获得直接输出?

Java 如何从正在运行的进程中获得直接输出?,java,bash,ubuntu,command,Java,Bash,Ubuntu,Command,我一直在尝试实时读取命令的控制台输出行,但我只能在进程结束后才能获得它。如何运行命令并在运行时获得输出 这是我目前使用的代码 public OutputStream executeCommand(String command) { try { ProcessBuilder pb = new ProcessBuilder(command); Process p = pb.start(); OutputStream ops = p.ge

我一直在尝试实时读取命令的控制台输出行,但我只能在进程结束后才能获得它。如何运行命令并在运行时获得输出

这是我目前使用的代码

public OutputStream executeCommand(String command) {
    try {
        ProcessBuilder pb = new ProcessBuilder(command);    
        Process p = pb.start();
        OutputStream ops = p.getOutputStream();
        return ops;
    } catch (Exception e) {
        e.printStackTrace();
    }

    return null;
}

请注意,下面的代码可能引发IOException

Runtime runtime = Runtime.getRuntime() ;
            Process process = runtime.exec("Your command") ;
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())) ;
            String line = null ;
            while ((line = reader.readLine())!= null){
                System.out.println(line);
            }