等待命令结束

时间:2018-11-20 15:35:09

标签: java command wait

有一个命令,运行一个exe,它产生一个输出,当该命令结束时,我应该运行upload();。方法。

run.command(exe_path, txt_path);
run.start();

TimeUnit.SECONDS.sleep(20);

upload();

如何替换静态睡眠方法?

1 个答案:

答案 0 :(得分:1)

使用ProcessBuilder,您应该可以调用Process.waitFor()等待命令完成。

Process p = new ProcessBuilder("foo.exe", "arg1").start();

// handle any input and output
InputStream stdout = p.getInputStream();
OutputStream stdin = p.getOutputStream();
InputStream stderr = p.getErrorStream();

int ret = p.waitFor(); // <- wait for exit