Java 启动长时间运行的进程,并在进程终止之前检查输出
我有一个问题,我想从正在运行的Java进程内部启动一个长时间运行的进程,并在长时间运行的进程终止之前获得初始输出 例如,运行java-jar myapp.jar,它有单元测试,并启动安装在同一台机器上的应用程序的长时间运行过程,该过程将一直运行到我的所有测试完成为止 在正常情况下,我只需使用ProcessBuilder并执行以下操作:Java 启动长时间运行的进程,并在进程终止之前检查输出,java,processbuilder,Java,Processbuilder,我有一个问题,我想从正在运行的Java进程内部启动一个长时间运行的进程,并在长时间运行的进程终止之前获得初始输出 例如,运行java-jar myapp.jar,它有单元测试,并启动安装在同一台机器上的应用程序的长时间运行过程,该过程将一直运行到我的所有测试完成为止 在正常情况下,我只需使用ProcessBuilder并执行以下操作: ProcessBuilder pb = new ProcessBuilder("ls"); Process p =
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。您是否尝试使用Mockito框架进行测试?在那里,您可以在测试之前添加@Before,在输出终止之前运行@Before。在这里你可以把它全部读出来 在@Before块中运行它是个好主意,但我不知道如何在命令行应用程序启动时获得初始输出。