Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/06/2015, 13:17
DvNe
 
Fecha de Ingreso: octubre-2012
Mensajes: 37
Antigüedad: 11 años, 7 meses
Puntos: 0
Ejecutar comando en consola linux

Buenas,

Estoy haciendo una aplicación que tiene la opción exportar una base de datos de un servidor local mysql. El código que he diseñado para realizar dicha exportación es el siguiente:

Código Java:
Ver original
  1. if (buscador.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
  2.     try {
  3.         String mysqlDir = getDireccionMysql();
  4.         String comando = mysqlDir + "mysqldump -uroot -X --create-options --databases bd_huella_puerta > " + buscador.getSelectedFile();
  5.            
  6.         ejecuta(comando);
  7.     } catch (IOException ex) {
  8.         JOptionPane.showMessageDialog(this, ex.getMessage(),"Problema al exportar",JOptionPane.ERROR_MESSAGE);
  9.     }
  10. }

La función ejecuta es la siguiente:

Código Java:
Ver original
  1. private void ejecuta (String comando) throws IOException {
  2.     if (System.getProperty("os.name").toLowerCase().contains("win"))
  3.         Runtime.getRuntime().exec("cmd /C " + comando);
  4.     else {
  5.         Runtime.getRuntime().exec(comando);
  6.     }
  7. }

Mi problema está en que si corro la aplicación en Windows, se me realiza la exportación perfectamente. Pero si la ejecuto en Linux no me da ningún error pero tampoco me crea el fichero de exportación.
  • Por último, decir que el comando que me ejecuta para Linux es el siguiente:
    /opt/lampp/bin/mysqldump -uroot -X --create-options --databases bd_huella_puerta > /home/jose/Escritorio/guardado.xml
  • También he probado a que se genere este comando:
    /opt/lampp/bin/mysqldump -uroot -X --create-options --databases bd_huella_puerta | tee /home/jose/Escritorio/guardado.xml

Si ejecuto estos mismos comandos en la consola de linux directamente todo funciona correctamente.

¿Alguien podría decirme dónde estoy fallando?