fala galera, to com um problema aqui, eu criei uma opção de backup e restore no sistema que estou desenvolvendo, o backup ta funcionando perfeitamente mas o restore…
o codigo do restore é esse aqui
[code]"
javax.swing.JFileChooser jfc = new javax.swing.JFileChooser();
jfc.setMultiSelectionEnabled(false);
jfc.setDialogTitle(“Selecione um arquivo sql”);
jfc.setFileFilter(new FileNameExtensionFilter(“SQL”, “sql”));
jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
int resposta = jfc.showOpenDialog(this);
if (resposta == 0) {
try{
String comando = "cmd /c mysql -uroot -proot -f clinica < " +jfc.getSelectedFile();
Runtime.getRuntime().exec(comando);
JOptionPane.showMessageDialog(null, "Arquivo restaurado com sucesso!");
}catch(Exception e){
e.printStackTrace();
JOptionPane.showMessageDialog(null,"Falha ao restaurar arquivo!");
}
}[/code]
so que ele nao ta restaurando, tipo se eu colocar c://banco.sql no lugar de +jfc.getSelectedFile(); ele restaura normalmente, mas eu coloquei esse getSelectedFile pro usuario pode procurar o arquivo a ser restaurado atraves de um JFileChooser, mas nao funciona
se alguem puder me dar uma luz ficarei grato 
[quote=Cleber Carvalho]
Também com o mesmo problema se alguém sabe como resolver nos ajude!!!
Oi, estava lendo um tópico que me tirou muitas dúvidas sobre Restauração de Backup Mysql.
A partir de exemplos encontrados na net, elaborei um procedimento para restaurar Backup. Até ai beleza.
O problema é que depois de selecionar o arquivo e executar o código aparentemente entra em lupe ou sei lá trava, já li e re li o código, mas não encontro o erro.
Peço encarecidamente sua ajuda de uma olhada e diga o que acha:
[code] private void JB_BT_Restaurar_MysqlActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
JFC_Backup.setVisible(true);
String bd = "sisdimapol";
int result = JFC_Backup.showOpenDialog(null);
if (result == JFileChooser.OPEN_DIALOG) {
File bkp;
bkp = JFC_Backup.getSelectedFile();
String arq = bkp.getPath();
System.out.println("bd " + bd);
System.out.println("arq " + arq);
String[] cmd = new String[3];
cmd[0] = "cmd.exe";
cmd[1] = "/C";
//cmd[2] = "c:\\xampp\\mysql\\bin\\mysql -u root -qwe123 -h localhost " + bd + " < " + arq;
cmd[2] = "C:\\wamp\\bin\\mysql\\mysql5.5.8\\bin\\mysql -u root -p qwe123 -h localhost " + bd + " < " + arq;
Runtime rt = Runtime.getRuntime();
System.out.println("Execing " + cmd[0] + " " + cmd[1]);
proc = rt.exec(cmd);
// any error message?
StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream(), "ERROR");
// any output?
StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(), "OUTPUT");
// kick them off
errorGobbler.run();
outputGobbler.run();
// any error???
int exitVal = proc.waitFor();
if (exitVal == 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 e) {
JOptionPane.showMessageDialog(null, e, "Erro!", 2);
}[/code]
Esta classe também é necessária para execução do código acima, há estou utilizando o xampp
[code]public class StreamGobbler {
InputStream is;
String type;
OutputStream os;
StreamGobbler(InputStream is, String type)
{
this(is, type, null);
}
StreamGobbler(InputStream is, String type, OutputStream redirect)
{
this.is = is;
this.type = type;
this.os = redirect;
}
public void run()
{
try
{
PrintWriter pw = null;
if (os != null)
pw = new PrintWriter(os);
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line=null;
while ( (line = br.readLine()) != null)
{
if (pw != null)
pw.println(line);
System.out.println(type + ">" + line);
}
if (pw != null)
pw.flush();
} catch (IOException ioe)
{
ioe.printStackTrace();
}
}
}
[/code]