用java做oracle数据库备份有问题!急急急!!!

各位高手,大侠帮小弟看看这段代码吧!麻烦了,很棘手啊!
这段程序已经能够让oracle正确执行备份了.
但是为了让java程序能够检测备份是否成功,我做了读去进程错误信息的操作:
br.readLine()
这个时候就出问题了,不能读出任何信息,程序也不会往下执行了,
并且没有任何错误提示.
代码如下:
===================================
String command = "cmd /k start exp " + user + "/" + pass + " FILE=" + filename +" full = y";
java.lang.Runtime rt = java.lang.Runtime.getRuntime();
java.lang.Process p = rt.exec(command);
try {
BufferedReader br = new BufferedReader( new InputStreamReader(p.getInputStream()));
String str;
while ((str = br.readLine()) != null) {
//执行到这里就会死掉,并且什么错误提示都没有啊。
System.out.println(str);
}
p.waitFor();
} catch (InterruptedException ex1) {
System.out.println(ex1.getMessage());
}
===================================
我做过实验,
把command换成ping www.sina.con.cn
就能够顺利执行并成功读出信息.

请问这是怎么回事啊?
有没有能够监控oracle备份的其他办法?
急死我啦!各位高手帮帮忙啊,感激不尽!!!

使用这种while死循环当然容易死了。因为是流操作。