java - 等到命令结束
问题描述
有一个命令,它运行一个 exe,它产生一个输出,当这个命令结束时,我应该运行 upload(); 方法。
run.command(exe_path, txt_path);
run.start();
TimeUnit.SECONDS.sleep(20);
upload();
如何替换静态睡眠方法?
解决方案
使用 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
推荐阅读
- javascript - 无法通过 JavaScript 打开环聊会议链接
- android-studio - Android Studio:每个项目的构建都失败了
- java - 从java中的2个数组中比较和提取相似的字符串,不比较双字
- umbraco - Umbraco 后台 - 缺少模型生成器/生成模型
- python - 我怎么能指定正则表达式中没有顺序,同时仍然检查限定符
- python - Dash 回调错误:不可散列的类型:'Figure'
- node.js - node.js 中的 Http 请求重定向和 cookie 处理
- datatables - Bootstrap 模态和 Datatables.net
- c++ - 好友功能、数据管理、OOP、Cpp
- flutter - 在底部导航栏上推送新屏幕时出现颤振过渡动画问题