【问题标题】:Wait until a command ends等到命令结束
【发布时间】:2018-11-20 15:35:08
【问题描述】:

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

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

TimeUnit.SECONDS.sleep(20);

upload();

如何替换静态休眠方式?

【问题讨论】:

  • 提示:ProcessBuilder.start() 返回一个 Process 对象。按照 javadoc 中的链接,查看 Process 类的方法。
  • 代码太少,无法准确理解问题。 run 是什么类型的? exe_pathtxt_path 有哪些类型?
  • @deHaar exe_pathtxt_path 的类型无关紧要,因为 OP 并没有感叹他们无法运行该进程,只是他们不知道如何等待它结束.但是,是的,更多的代码会有所帮助。

标签: java command wait


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 2013-02-18
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    相关资源
    最近更新 更多