有一个命令,运行一个exe,它产生一个输出,当该命令结束时,我应该运行upload();。方法。
run.command(exe_path, txt_path);
run.start();
TimeUnit.SECONDS.sleep(20);
upload();
如何替换静态睡眠方法?
答案 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