# Leerzeichen in cmd eingabe



## JavaJoe (7. Juli 2007)

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:

```
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


----------



## Kulabac (9. Juli 2007)

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 
	
	
	



```
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).


----------



## Anime-Otaku (9. Juli 2007)

Warum nicht einfach ein String[] mit den Argumentan übergeben...der escaped die Leerzeichen automatisch.


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

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


----------

