我试图在JAVA中从我的应用程序运行导出数据泵(expdp)。问题是expdp进程永远不会结束。 数据泵成功启动,运行和完成,但该过程仍显示为在Windows任务管理器中运行,导致我的应用程序继续执行。它一直在等待进程结束。
到目前为止,这只发生在这个特定的进程(expdp)中。我尝试过一些.bat脚本,它们运行得很好。
public class DataPump {
private static Date date = new Date();
static DateFormat hourFormat = new SimpleDateFormat("HHmm");
static DateFormat dateFormat = new SimpleDateFormat("MMddyyyy");
private static String comando="expdp";
private static String user="user/***********@DB1";
private static String schemas="schemas=ADMIN";
private static String directory="directory=BACKUPS";
private static String dumpfile="dumpfile=Backup_" + dateFormat.format(date) + "_" + hourFormat.format(date) + ".dmp";
private static String logfile="logfile=Backup_" + dateFormat.format(date) + "_" + hourFormat.format(date) + ".log";
private static String parallel ="parallel=4";
public static void expdp() {
try {
Process p = new ProcessBuilder(comando, user, schemas, directory, dumpfile, logfile, parallel).start();
p.waitFor();
}
catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
e.printStackTrace();
}
JOptionPane.showMessageDialog(null, "the export datapump finished");
}
}