Como fazer Backup de Base de Dados em Java sem depender do S.O

Saudações

Quero saber como faço para fazer um codigo java que faça backup e restore de uma base de dados MySQL , sem depender do ambiente do SO!

Ai vai um trecho do código que uso actualmente (e funciona) , mas procuro algo melhor!

[code]
try {
String arquivo = null;

JFCescolherPasta.setVisible(true); // JFileChooser , criado automaticamente no Netbeans

int result = JFCescolherPasta.showSaveDialog(null);

if(result == JFileChooser.APPROVE_OPTION){
arquivo = JFCescolherPasta.getSelectedFile().toString().concat(".sql");

File file = new File(arquivo);

if(file.exists()){
Object[] options = { “Sim”, “Não” };
int opcao = JOptionPane.showOptionDialog(null,“Este arquivo já existe. Quer sobreescrever este arquivo?”, “Atenção!!!”,
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null,options, options[0]);
if (opcao == JOptionPane.YES_OPTION) {
Runtime bck = Runtime.getRuntime();
bck.exec(“C:/xampp/mysql/bin/mysqldump.exe -v -v -v --host=localhost --user=root --password=igc7gng --port=3306 --protocol=tcp --force --allow-keywords --compress --add-drop-table --default-character-set=latin1 --hex-blob --result-file=”+arquivo+" --databases compuponto");
JOptionPane.showMessageDialog(null, “Backup realizado com sucesso.”, “Tudo OK!”, 1);
}else{
JB_BackupActionPerformed(evt);
}
}else{

                    Runtime bck = Runtime.getRuntime();   
                    bck.exec("C:/xampp/mysql/bin/mysqldump.exe -v -v -v --host=localhost "
                            + "--user=root --password=igc7gng --port=3306 --protocol=tcp "
                            + "--force --allow-keywords --compress  --add-drop-table "
                            + "--default-character-set=latin1 --hex-blob  --result-"
                            + "file="+arquivo+" --databases compuponto");  //esta linha varia de acordo com a aplicação que uso
                    JOptionPane.showMessageDialog(null, "Backup realizado com sucesso.", "Tudo OK!", 1);   

}

}

    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e, "Erro!", 2);
    }[/code]

Aguardo vossas dicas!

Abraços :thumbup: