我已经创建了一个桌面应用程序系统,我想备份数据库。
我正在使用下面显示的代码:
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
答案 0 :(得分:1)
请参阅waitFor()的javadoc:
返回:此Process对象表示的子进程的退出值。按照惯例,值0表示正常终止。
换句话说:您的数据库操作失败。你可以做两件事:
含义:您可以通过执行以下操作来访问由msqldump编写的潜在消息:
InputStream stdout = p.getInputStream();
InputStream stderr = p.getErrorStream();
int returnCode = p.waitFor();
if (returnCode == 0) {
... give positive message
} else {
read data from streams and display those