首页 > 解决方案 > 等到命令结束

问题描述

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

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

TimeUnit.SECONDS.sleep(20);

upload();

如何替换静态睡眠方法?

标签: javacommandwait

解决方案


使用 a 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

推荐阅读