Sav*_*sis 5 java batch-file exec
你会认为从Java启动一个bat文件是一件容易的事,但是没有...我有一个bat文件,它为一个从文本文件中读取的值循环执行一些sql命令.它或多或少是这样的:
FOR /F %%x in (%CD%\listOfThings.txt) do sqlcmd -Slocalhost\MSSQL %1 %2 -d %3 -i %CD%\SQLScripts\\%%x
exit
Run Code Online (Sandbox Code Playgroud)
不要担心它们不重要的细节.我想要的是简单地从Java中运行这个bat文件,让它等到执行完成.显然这并不容易.到目前为止我所拥有的是:
Runtime.getRuntime().exec("cmd /K start SQLScriptsToRun.bat"
+" -U"+getUser()
+" -P"+getPass()
+" " + projectName);
return true;
Run Code Online (Sandbox Code Playgroud)
问题是exec()方法立即返回.bat文件运行2-3分钟.我尝试删除开始但无济于事.我尝试了很多变化,但它让我无处可去.关于如何完成这个简单任务的任何想法?
Mic*_*ers 14
你不应该忽略它的返回值.exec().它为您提供了一个Process可以的对象waitFor(),如下所示:
final Process process = Runtime.getRuntime().exec("blahblahblah");
final int exitVal = process.waitFor();
// if exitVal == 0, the command succeeded
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9102 次 |
| 最近记录: |