我无法在xampp中执行mysqldump,它显示“系统无法找到指定的文件”。我使用了以下代码:
public boolean backupDB(String dbName, String dbUserName, String dbPassword, String path) {
String[] executeCmd = new String[] {
"mysqldump.exe",
"-u",
dbUserName,
"-p",
dbPassword,
"--add-drop-database",
"-B",
dbName,
"-r",
path
};
Process runtimeProcess;
try {
File pasta = new File("C:\\xampp\\mysql\\bin");
runtimeProcess = Runtime.getRuntime().exec(executeCmd, null, pasta);
int processComplete = runtimeProcess.waitFor();
if (processComplete == 0) {
System.out.println("Backup created successfully");
return true;
} else {
System.out.println("Could not create the backup");
}
} catch (Exception ex) {
ex.printStackTrace();
}
return false;
}当我运行此命令时,我得到以下错误:
java.io.IOException: Cannot run program "mysqldump.exe" (in directory "C:\xampp\mysql\bin"): CreateProcess error=2, O sistema não pode encontrar o arquivo especificado
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at xd.test.backupDB(test.java:25)
at xd.ee.main(ee.java:7)设置一个是mysqldump,并且它是正确的扩展类型,它仍然找不到mysqldump。我试了所有的方法都不能解决这个问题,有什么想法吗?
发布于 2019-07-18 08:07:40
请使用ProcessBuilder,尝试如下所示:
String[] executeCmd = new String[] {
"C:\\xampp\\mysql\\bin\\mysqldump.exe ",
"-u ",
dbUserName,
"-p ",
dbPassword,
"--add-drop-database ",
"-B ",
dbName,
"-r ",
path
};
final ProcessBuilder pb = new ProcessBuilder(Arrays.asList(executeCmd));
final Process p;
try {
p = pb.start();
int processComplete = p.waitFor();
if (processComplete == 0) {
System.out.println("Backup created successfully");
return true;
} else {
System.out.println("Could not create the backup");
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String line = null;
while ( (line = reader.readLine()) != null) {
System.out.println(line);
}
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}https://stackoverflow.com/questions/57082571
复制相似问题