Leerzeichen in cmd eingabe

JavaJoe

Mitglied
Hallo!
Hab mal wieder ein kleines Problem bei dem ihr mir bestimmt weiterhelfen könnt.
Ich habe versucht eine musikdatei von einem java programm aus direkt durch den standart Player des Windows systems öffnen zu lassen. Ist soweit auch kein Problem. Mein Ansatz:
Code:
try{
        String pa1 = delfile.getAbsolutePath();
        System.out.println(pa1);
        String pa = pa1.replaceAll(" ","\" \"");

        System.out.println(pa);
        pc = new ProcessBuilder("cmd",pa);
        pc.start();
      }catch(Exception w){
        System.out.println(w);

Das Probelm ist, dass cmd mit leerzeichen in Dateipfaden nichts anfangen kann. Deswegen habe ich sie in " " gesetzt denn wenn ich die Leerzeichen im Dateipfad durch " " ersetze und diesen Pfad in cmd manuell aufrufe geht es nur im javaprogramm über den ProcessBuilder nicht.

Vielen Dank im Vorraus!
Joe
 
Du setzt die Leerzeichen in Anführungsstriche? Hmm ... auf die Idee wäre ich gar nicht gekommen :)
Ich hätte das so gelöst, dass ich um den gesamten Pfad Anführungszeichen setze. Also
Code:
pal = "\"" + pal + "\"";
Hab's jetzt aber nicht getestet, also keine Ahnung ob's funktioniert. Mach ich halt nur immer so, wenn ich irgendwo nen Pfad angeben muss und er den mit Leerzeichen nicht nimmt (z.B. im Classpath).
 
Warum nicht einfach ein String[] mit den Argumentan übergeben...der escaped die Leerzeichen automatisch.

Java:
String[] play = {"mplayer","-af","volnorm","C:\\Dokumente und Einstellungen\bla\blub"};

        pc = new ProcessBuilder(play);
        pc.start();
 

Neue Beiträge

Zurück