【问题标题】:How can I identify the completion of batch program in a windows environment using java and shell programming如何在windows环境下使用java和shell编程识别批处理程序的完成情况
【发布时间】:2018-06-22 09:39:58
【问题描述】:
Process p = Runtime.getRuntime().exec("cmd.exe /C start C:/Empire/Intranet/Redbook/Monthly/runmonthly_Dev.cmd");

//Runtime.getRuntime().exec("cmd.exe /C start C:/Empire/Intranet/Redbook/Monthly/runmonthly_Dev.cmd");
p.waitFor();
while(p.exitValue() == 0){
}

【问题讨论】:

  • 另请参阅When Runtime.exec() won't,了解有关正确创建和处理流程的许多好技巧。然后忽略它引用exec 并使用ProcessBuilder 创建进程。还将String arg 拆分为String[] args 以解决包含空格字符的路径之类的问题。

标签: java shell process exec


【解决方案1】:

不是那样的。当您致电waitFor() 时,您已经等待该过程完成。如果退出值为零,则执行到退出值为零的循环将永远运行,但退出值永远不会改变。循环是没有意义的。删除它。

如果您想等待程序而不是批处理文件完成,请删除start

【讨论】:

    猜你喜欢
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    相关资源
    最近更新 更多