在Java程序中多次执行ProcessBuilder

在Java程序中多次执行ProcessBuilder,java,processbuilder,Java,Processbuilder,我想在Java程序中使用ProcessBuilder,该程序将在同一程序中多次使用。 检查数据库中每个记录的此代码段。如果只有一条记录满足诸如开始时间/结束时间之类的约束,那么我没有任何问题,但是如果两条记录满足这些约束中的任何一条,那么第一条记录将执行processbuilder中的命令并将输出重定向到日志文件。但在第二条记录中,它不执行processbuilder中的命令,并将输出重定向到同一个日志文件。在这个网站上有一个关于这个问题的类似问题,在下面的链接中没有得到回答。我希望,至少现在有

我想在Java程序中使用ProcessBuilder,该程序将在同一程序中多次使用。 检查数据库中每个记录的此代码段。如果只有一条记录满足诸如开始时间/结束时间之类的约束,那么我没有任何问题,但是如果两条记录满足这些约束中的任何一条,那么第一条记录将执行processbuilder中的命令并将输出重定向到日志文件。但在第二条记录中,它不执行processbuilder中的命令,并将输出重定向到同一个日志文件。在这个网站上有一个关于这个问题的类似问题,在下面的链接中没有得到回答。我希望,至少现在有人会通过这个问题,并给我们一个解决方案。我真的不明白我哪里做错了。任何人谁有这个概念的想法,请回答这个问题,让我知道我做错了

我建议你使用

p1.waitFor();

在启动另一个子进程之前将此线程与子进程同步,特别是当它们有一个共同的资源D:\logfile.log时。

谢谢您的回复,先生。但是我不能让进程等待,因为我的程序必须在一分钟内检查来自4个表的所有记录,而不是单个表的所有记录,如果在那个特定的时间有任何记录,则重新加载。有没有其他方法可以解决这个问题?例如,如果当时计划了100条记录,实际上不可能在这一分钟内等待每条记录。请告诉我如何解决这个问题。您可能需要读取进程的标准输出,这可能需要每个执行进程一个线程。OTOH,可以生成一个包含所有cmd调用的脚本,并在迭代DB关系rs1后,将其作为单个子进程执行。但是,我认为检查我的建议(即等待)是否可以避免您报告的问题会很有启发性。然后从其他选项中选择一个;帮助我获得所需的输出,但需要几秒钟才能完全加载页面。对于较少的记录,这个过程绝对有效。但正如我提到的,如果同时安排了100条记录,那么在一分钟内加载整个内容将是一个问题。
p1.waitFor();