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

时间:2017-04-06 23:54:23

标签: java bash ubuntu command

所以我想在我的Linux计算机上运行一个进程,并在发送时按行进行输出,例如(我刚刚完成了):

持续运行的过程每五秒输出一个随机数

52
72
33
67
26
74
2

我希望在打印到控制台时获取该号码。

目前,我有一些代码可用于执行命令,但我不确定这是否有效:

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;
}

我几乎只是问我如何获得某种输出并在打印时读取它。

1 个答案:

答案 0 :(得分:1)

请注意,下面的代码可能会抛出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);
            }