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