我为一个项目编写了一个小应用程序..它将执行以下任务:
- 写入 commands.bat 文件。这个 bat 文件有一些源代码服务器命令,需要一些时间来处理。
- 使用 ProcessBuilder 执行 commands.bat 并使用 redirectOutput(File file) 方法获取 outputfile.txt。
- 读取 outputfile.txt 并获得所需的输出。
当我运行这个应用程序时,程序控制从第 1 步开始并完全执行。在步骤 2 中,控件启动一个驱动批处理文件的进程。现在 commands.bat 文件需要一些时间才能完成(取决于源代码服务器的响应)。有时这个批处理花费的时间比合理的时间多一点,控件没有等待并开始执行第 3 步,这样我就没有在 outfile.txt 中获得完整的流。我还使用了类似的东西:
- waitfor():即使使用此控件也不等待进程结束(技术上我可能错了)
- 线程.sleep()。这不起作用,因为批处理文件处理所花费的时间不确定。
请帮忙。