
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:
De la manera mas atenta y cordial posible solicito ayuda para solventar este tema, ya que por mis propios medios no encuentro respuestas.
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


0