processbuilder 从 Java 运行命令

cod*_*fun 4 java callback processbuilder

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

Hov*_*els 5

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


Nat*_*ord 5

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