JavaアプリからMysqlダンプを復元しようとしています。私はこのコードを使用しています:
Runtime rt = Runtime.getRuntime();
try {
comando = "mysql -u root -ppass -e \"source " + path + "\\sql\\backup.sql\" legapelis" ;
Process proceso = rt.exec(comando);
System.out.println("ejecutando");
System.out.println(comando);
proceso.getInputStream().close();
proceso.getOutputStream().close();
proceso.getErrorStream().close();
completado = proceso.waitFor();
if (completado != 0) {
System.out.println("error");
addActionError(getText("backup.errcopia") + ": " + String.valueOf(completado));
consultarCopias();
return "error";
}
System.out.println("fin");
} catch (Exception e) {
addActionError(e.getLocalizedMessage());
consultarCopias();
return "error";
}
しかし、このコードによって開かれるMysqlプロセスは決して終了しません。ハングし、強制終了すると、Mysqlサービスが正常に機能しなくなります(再起動する必要があります)。私はたくさんのコードを試しました:ストリームを閉じる、それを読む...しかし同じ結果になりました。
ヒントはありますか?
私の英語があまり上手でないならすみません。
ありがとう
追伸:inputstreamから読み取るために、コマンドに-vオプションを追加しようとしました。読み取りを開始しますが、再びハングします(コマンドの出力の読み取りが終了しません:突然停止します)