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