【问题标题】:processbuilder to run commands from Javaprocessbuilder 从 Java 运行命令
【发布时间】:2012-04-11 00:54:21
【问题描述】:

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

【问题讨论】:

    标签: java callback processbuilder


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-01
        • 2023-03-11
        • 2020-11-23
        相关资源
        最近更新 更多