Ho utilizzato questo metodo per far eseguire mysqldump, col quale faccio il backup di un database.

Ho scritto così:

File f = new File("c.sql");
try {
System.out.println (f.getAbsolutePath());
Process run = Runtime.getRuntime().exec(
"mysqldump --all-databases < \" " + f.getAbsolutePath() + "\" --host=" + ip_label.getText() + " --port=" + port_label.getText() + " --user=" + txtUserId.getText() + " --password=" + txtPassword.getText());
System.out.println ("OK");
}

Io vorrei che fosse eseguito il comando scritto sopra, che da shell funziona benissimo, il quale dovrebbe scrivere sul file di testo c.sql.

Quando vado a vedere il file però, è vuoto...

Perchè?

Se invece eseguo il comando da shell il tutto fila liscio.

Sbaglio qualcosa nella stringa o è proprio il concetto che non mi quadra?