processbuilder从Java运行命令

时间:2012-04-11 00:54:22

标签: java callback processbuilder

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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

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