在Java中运行bat文件并等待

Savvas Dalkitsis:

您可能会认为,从Java启动bat文件将是一件容易的事,但没有...我有一个bat文件,该文件执行一些sql命令以循环从文本文件读取的值。它或多或少是这样的:

FOR /F %%x in (%CD%\listOfThings.txt) do sqlcmd -Slocalhost\MSSQL %1 %2 -d %3 -i %CD%\SQLScripts\\%%x
exit

不用担心它们不重要的细节。我想要的是简单地从Java内部运行此bat文件,并让它等待执行完成。显然这并不容易。我到目前为止所拥有的是:

Runtime.getRuntime().exec("cmd /K start SQLScriptsToRun.bat"
                    +" -U"+getUser()
                    +" -P"+getPass()
                    +" " + projectName);
return true;

问题是exec()方法立即返回。蝙蝠文件可以运行2-3分钟。我尝试删除开始但无济于事。我尝试了许多变体,但无济于事。关于如何执行此简单任务的任何想法?

迈克尔·迈尔斯(Michael Myers):

您不应忽略的返回值.exec()它为您提供了一个Process您可以对象waitFor(),如下所示:

final Process process = Runtime.getRuntime().exec("blahblahblah");
final int exitVal = process.waitFor();
// if exitVal == 0, the command succeeded

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章