首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中运行bat文件并等待

在Java中运行bat文件并等待
EN

Stack Overflow用户
提问于 2010-03-13 00:27:46
回答 2查看 10.3K关注 0票数 6

您可能认为从Java启动bat文件将是一项简单的任务,但是...我有一个bat文件,它为从文本文件读取的值循环执行一些sql命令。或多或少是这样的:

代码语言:javascript
复制
FOR /F %%x in (%CD%\listOfThings.txt) do sqlcmd -Slocalhost\MSSQL %1 %2 -d %3 -i %CD%\SQLScripts\\%%x
exit

不要担心那些不重要的细节。我想要的只是从Java内部运行这个bat文件,并让它等待,直到执行完成。显然,这并不容易。到目前为止,我得到的是:

代码语言:javascript
复制
Runtime.getRuntime().exec("cmd /K start SQLScriptsToRun.bat"
                    +" -U"+getUser()
                    +" -P"+getPass()
                    +" " + projectName);
return true;

问题是exec()方法会立即返回。bat文件会运行2-3分钟。我试着去掉起始器,但没有用。我尝试了许多变体,但都无济于事。对如何完成这个简单的任务有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-13 00:30:25

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

代码语言:javascript
复制
final Process process = Runtime.getRuntime().exec("blahblahblah");
final int exitVal = process.waitFor();
// if exitVal == 0, the command succeeded
票数 15
EN

Stack Overflow用户

发布于 2010-03-13 00:30:02

您需要在处理exec调用返回时使用waitFor

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2434125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档