public class TestExp{ public static void main(String[] args) {
Runtime rt = Runtime.getRuntime();
Process processexp = null;
String exp = "exp scott/abcdef@testst file=f://sql16.dmp";
try {
processexp = rt.exec(exp);
processexp.waitFor();//阻塞当前进程
System.out.println("导出成功");
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
我想通过JAVA调用oracle的命令导出数据库,但是在执行waitFor()的时候进程一直处于阻塞状态,如果我把JAVA虚拟机关闭后进程才会继续运行,请问这个问题怎么解决啊?因为我需要等待进程结束之后再让java代码继续执行,请同仁们赐教!!
Runtime rt = Runtime.getRuntime();
Process processexp = null;
String exp = "exp scott/abcdef@testst file=f://sql16.dmp";
try {
processexp = rt.exec(exp);
processexp.waitFor();//阻塞当前进程
System.out.println("导出成功");
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
我想通过JAVA调用oracle的命令导出数据库,但是在执行waitFor()的时候进程一直处于阻塞状态,如果我把JAVA虚拟机关闭后进程才会继续运行,请问这个问题怎么解决啊?因为我需要等待进程结束之后再让java代码继续执行,请同仁们赐教!!
getErrorStream();
getInputStream();
getOutputStream();
這些方法調用一下,可能不用全調,只要把流中的數據拿出來就行。
http://leonmau.iteye.com/blog/1174000