我正在執行Java類的mysqldump命令,但我不斷收到標題中提到的錯誤。Java exec()mysqldump錯誤:找不到表「>」
這是我使用的代碼:
Process runtimeProcess = Runtime.getRuntime().exec("mysqldump -uroot -pmypassword valo > /etc/valbu.sql");
int processComplete = runtimeProcess.waitFor();
if(processComplete == 0){
System.out.println("Backup taken successfully");
} else {
InputStream stderr = runtimeProcess.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<ERROR>");
while ((line = br.readLine()) != null)
System.out.println(line);
System.out.println("</ERROR>");
System.out.println("Could not take mysql backup");
}
看起來他不明白,>
不是一個表,但一個命令轉儲。
不要傳遞憑據作爲命令行參數!它們可能對主機上的其他用戶可見(通過'ps -o args')。相反,將它們作爲環境變量或stdin傳遞。 – 2013-01-07 11:05:44