在进程终止之前启动长时间运行的进程并检查输出

时间:2018-05-05 02:47:13

标签: java processbuilder

我遇到一个问题,我想从正在运行的Java进程中启动一个长时间运行的进程,并在长时间运行的进程终止之前获取初始输出。

即。运行java -jar myapp.jar,它具有单元测试并启动安装在同一台机器上的应用程序的长时间运行过程,该过程将运行直到我的所有测试都已完成。

在正常情况下,我会使用ProcessBuilder并执行以下操作:

ProcessBuilder pb = new
                ProcessBuilder("ls");
        Process p = pb.start();
        BufferedReader br=new BufferedReader(
                new InputStreamReader(
                        p.getInputStream()));
        String line;
        while((line=br.readLine())!=null){
            System.out.println(line);
        }

我怎样才能做同样的事情并启动一个长时间运行的进程,该进程不会终止几分钟,或者直到我终止它还得到输出?任何有效的解决方案都可以,但不必与ProcessBuilder一起使用。

1 个答案:

答案 0 :(得分:0)

您是否尝试使用Mockito框架进行测试?在那里你可以添加@Before测试,在输出终止之前运行。 http://site.mockito.org在这里你可以阅读所有内容!