3

我正在从 Java 代码运行 shell 命令,ProcessBuilder.start() 当命令完成执行时,我需要一个回调(或某种通知)。该命令需要 10-15 秒才能执行。可以使用ProcessBuilder吗?

4

2 回答 2

4

是的,这是可能的。您可以调用waitFor()Process,并等待它返回,然后分析返回的值以确保它为0,或者如果不响应错误。这通常在后台线程中完成,以免占用当前线程。

于 2012-04-11T00:56:43.043 回答
4

ProcessBuilder的start()方法明确声明它返回一个 Process,其 API 在这里。该 Process 具有可以在其上调用的方法,包括 waitFor,它将在 Process 完成时唤醒当前线程。您需要做的就是启动一个线程,给它这个进程并让它在进程完成时或超时后发出信号。

于 2012-04-11T00:58:58.253 回答