Java - Ejecutar comando de sistema desde una variable

 
Vista:
Imágen de perfil de Bill

Ejecutar comando de sistema desde una variable

Publicado por Bill (1 intervención) el 30/05/2015 03:32:21
Saludos comunidad.

Estoy dando mis primeros pasos en Java de manera autodidacta, y para aprender un poco más decidí emprender un pequeño proyecto de una interfaz para un reproductos de audio.

Uso sistema Debian, y el reproductor mencionado es el XMMS2.

Básicamente lo que quiero hacer, (entre otras cosas) es añadir los archivos de una carpeta a la lista de reproducción usando un comando del sistema, basado en nyxmms2, que no es mas que un cliente del reproductor por CLI.

Mi pequeñisimo codigo agrega la ruta de la carpeta en donde se encuentra la musica y la almacena en una variable sin problemas. La adversidad ocurre cuando añado carpetas con espacios en su nombre, en estos casos la lista no es añadida, pero al revisar lo que la variable ha guardado y lo que deberia ejecutarse, parece todo correcto.

Dejo el codigo aqui:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
 
        JFileChooser directory = new JFileChooser("/mnt/1_TB/Musica"); //directorio por defecto
        directory.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); //Admitiendo solo directorios
        directory.showOpenDialog(null);
 
        String ruta = (directory.getSelectedFile().getAbsolutePath()); //almacendando ruta seleccionada en variable
        ruta = ruta.replace(" ", "' '");    //colocando espacios entre comillas simples para que sea reconocido por el OS
 
        try {
            String add = "nyxmms2 add " + ruta;        //Almacenando comando completo en variable
            Runtime.getRuntime().exec(add);           //ejecutando comando
            System.out.print(add);
        }
        catch (IOException ioe) {
            System.out.println (ioe);
        }
 
    }


De la manera mas atenta y cordial posible solicito ayuda para solventar este tema, ya que por mis propios medios no encuentro respuestas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder