0
我已经创建了一个桌面应用程序系统,我想要备份数据库。桌面应用程序系统,我想备份数据库
我使用的代码如下所示:
process p = null;
p = runtime.exec("E:/xampp/mysql/bin/mysqldump -uroot --add-drop-database -B clinic_management -r "+path+".sql");
int processComplite = p.waitFor();
System.out.println("processComplite" + processComplite);
if(processComplite==0) {
JOptionPane.showMessageDialog(null, "<html><center> backup complite<br> Check this folder<br>"+path+"</center><html>");
jTextField1.setText("");
} else {
JOptionPane.showMessageDialog(null, " backup not complite");
}
它的正常工作在某些系统中,但有时它显示
processComplite=1
请阅读甲骨文教程EventDispatchThread,epsecially部分约SwingWorker的,短的解释--->所有Swing APIs的事件必须在EDT上完成,并且您的代码在显示JOptionPane时出现问题 – mKorbel
@mKorbel您错过了这一点。他不明白“complite”不是完整的;但是执行该转储调用的返回代码......并且!= 0意味着。转储失败。 – GhostCat
@GhostCat我只评论EDT,:-)作为一边MySQL有相当/很好设计的JDBC API,那么也许没有理由使用(解释错误的想法)runtime.exec作为答案在这里 – mKorbel