Galera, estou com o seguinte problema, estou criando uma aplicaçao java, usando o Banco de dados Mysql, agora estou fazendo um metodo para fazer a restauraçao backup dos dados.
Estou criando a aplicação para rodar tanto no Linux quanto no Windows. Como uso o Linux estou fazendo para ele primeiro.
O codigo do meu metodo é o seguinte:
public void restauraBackup(String url){
try{
if (System.getProperty("os.name").equals("Linux")) {
props.load(new FileInputStream(dir+"/conf.ini"));
} else {
props.load(new FileInputStream(dir+"\conf.ini"));
}
String host = props.getProperty("host");
String senha = props.getProperty("senha");
String banco = props.getProperty("banco");
int res;
// Abre o arquivo
FileInputStream stream = new FileInputStream(url);
// Transforma os arquivos de byte para String
InputStreamReader bkp = new InputStreamReader(stream);
if (System.getProperty("os.name").equals("Linux")) {
Process proc = Runtime.getRuntime().exec("/bin/bash -c 'mysql -uroot -p"+senha+" -f "+banco+" < "+bkp+"'");
proc.waitFor();
res = proc.exitValue();
if (res == 0){
JOptionPane.showMessageDialog(null, "Backup Restaurado com sucesso!");
}
else{
JOptionPane.showMessageDialog(null, "Falha ao restaurar backup Linux. \n Verifique as configurações ou entre em contato com o suporte!");
}
} else {
Process proc = Runtime.getRuntime().exec("cmd /c mysql -uroot -p"+senha+" -f "+banco+" < "+bkp);
proc.waitFor();
res = proc.exitValue();
if (res == 0){
JOptionPane.showMessageDialog(null, "Backup Restaurado com sucesso!");
}
else{
JOptionPane.showMessageDialog(null, "Falha ao restaurar backup. \n Verifique as configurações ou entre em contato com o suporte!");
}
}
}
catch(Exception err){
JOptionPane.showMessageDialog(null, "Erro ao restaurar banco: "+err.getMessage());
System.out.println(err.getStackTrace());
}
}
O problema, descobri que vem a ser nesta parte:
Process proc = Runtime.getRuntime().exec("/bin/bash -c 'mysql -uroot -p"+senha+" -f "+banco+" < "+bkp+"'");
Só que não sei como é que ficaria correto, visto que todos os exemplos que tenho achado no Google são para o Windows… =/
Caso alguem possa me ajudar agradeço.
Abraço