Java调用db2cmd命令导出数据

转自:[url]http://blog.csdn.net/weoln/archive/2008/02/01/2076539.aspx[/url]

使用Runtime调用bat文件处理外部角本时一般使用 Runtime.getRuntime.exec(command)就可以了
如果批处理是使用db2的db2cmd时,dos窗口则会弹出db2命令窗口执行相关的处理角本,如果需要等特此批处理命令执行完成后再执行下面的流程就会出现相应的问题,如下例流程,将客户端将生成数据备份文件上传至服务器

因waitFor() 只能控制第一个dos窗口的进程,而无法控制下一个窗口,程序则会同步执行,当数据还没生成时就已经进行压缩处理了,当然会出现错误。
所以在执行批处理时将批出理文件隐式执行

实施方法代码如下

/**
* 执行批处理
* @param command
*/
public void runBat(String command) {
Process child = null ;
try {
Runtime rt = Runtime.getRuntime();
child = rt.exec(command);
//以下代码为控制台输出相关的批出理
String line = null ;
BufferedReader reader = new BufferedReader(new InputStreamReader(child.getInputStream()));
while ((line = reader.readLine()) != null ) {
System.out.println(line);
}

reader.close();
// 等待刚刚执行的命令的结束
while ( true ) {
if (child.waitFor() == 0 ) break ;
}
} catch (Exception ex) {
child.destroy();
ex.printStackTrace();
}
}


批处理代码如下:

@echo off
rem
rem This is a Windows Shell Script that invokes a DB2 Command Window that
rem performs a database backup by calling the DB2 backup database command.
rem
set DB2INSTANCE=DB2
set DB2DATABASE=SAMPLE

db2 connect to %DB2DATABASE% user Administrator using Administrator
db2 export to "d:\employee.csv" of del modified by coldel, select * from EMPLOYEE
db2 disconnect %DB2DATABASE%
db2 terminate
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值