- 论坛徽章:
- 0
|
以下代码是调用一个bat文件执行, 想让先执行这个bat, 执行完后主程序再往下进行.
但是实际情况是主程序还运行下去,直到最后都执行完才等待子进程完成退出.
代码: 操作系统是XP
try {
Runtime rt = Runtime.getRuntime();
Process ps = null;
ps = rt.exec("cmd.exe /C start e:\\test.bat");
ps.waitFor();
log.debug(" exit with : " + ps.exitValue()); // log输出 exitValue()返回0
log.debug(" rebuildDb ...... ");
int i = ps.exitValue();
if (i == 0) {
log.debug("Sucess!!!");
return true;
} else {
log.error("OracleTableChecker : rebuildDb Error!!!");
return false;
}
} catch (InterruptedException e) {
log.error("OracleTableChecker : rebuildDb Error!!!");
e.printStackTrace();
return false;
} catch (IOException e) {
log.error("OracleTableChecker : rebuildDb() error");
e.printStackTrace();
return false;
}
e:\test.bat:
cd E:\oracle\imp-exp
e:
export.bat GEGW5 @CBMADB-ON-28
echo "\n\n\nimporting!"
import.bat GEGW6 @CBMADB-ON-28
exit 0
执行.bat 文件试过的几种方法:
cmd.exe /C start e:\test.bat 主进程和脚本都能执行, 但是主进程不会等待子脚本执行结束.
cmd.exe /C e:\test.bat 主程序和脚本都死在那里不动了, 没有反应.CPU占用也很为0.
e:\test.bat 同上
command.com /C e:\test.bat 主程序能正常进行, 但脚本未执行.
command.com /C start e:\test.bat
java.io.IOException: CreateProcess: command /C start e:\test.bat error=2
请各位帮忙解决. 一直在线
[ 本帖最后由 chouy 于 2006-3-13 19:22 编辑 ] |
|