# Pfad mit Leerzeichen über exec starten



## abschnitt (21. Jun 2004)

Hallo!

Ich habe folgendes Problem. Wenn ich ein externes Programm aufrufen will und in dem Parameter Leerzeichen sind, dann kann das File nicht geöffnet werden. 
Mein System: Xp mit Eclipse

Ein Beispiel:
String execParameter= "cmd /c c:\\aktueller Ordner\\test von heute.pdf";
Runtime.getRuntime().exec(execParameter);

Ich hab schon etwas gesucht und manche gaben den Tipp, dass man die Leerzeichen durch “\ “ oder “\”” oder was auch immer ersetzten soll.
Dies funktioniert bei mir aber nicht.

Vielen Dank für eure Hilfe


----------



## P3AC3MAK3R (21. Jun 2004)

Was heißt



> Dies funktioniert bei mir aber nicht.



?

Gibt es irgendeine Fehlermeldung?


----------



## Grizzly (21. Jun 2004)

Hast Du es schon mal mit http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html#exec(java.lang.String[]) probiert?


----------



## abschnitt (21. Jun 2004)

Haha!

Danke für den Tipp!
Die Api ist Standard bei mir!
Da wird natürlich immer zuerst geschaut.

Aufgrund eurer Antworten sehe ich, dass ihr noch nie das Problem hattet!

Also, Fehlermeldung kommt keine und das File konnte auch nicht gestartet werden.

Wenn man nun alles zusammenschreibt(keine Leerzeichen hat – vorrausgesetzt, dass es das Verzeichnis und den Filename gibt ... logisch oder ;-) )wird das File ohne Probleme geöffnet.
In meinem Fall öffnet sich das PDF File.

Wer hat eine Ahnung, wie man Leerzeichen ersetzt, damit das File startet.
Ich kann doch nicht vom User verlangen, dass er alles zusammenschreibt oder einen Unterstrich verwendet.


----------



## Pulvertoastman (21. Jun 2004)

Unter UNIX wird das Leerzeichen im Pfad mit '\' maskieren.
Unter Windows solltest du den Pfadnamen mit Leerzeichen in " setzen, also z.B. 

```
String execParameter= "cmd /c \"c:\\aktueller Ordner\\test von heute.pdf\""; 
Runtime.getRuntime().exec(execParameter);
```

In der Regel reicht aber auf beiden Systemen ein einschliessen mit " aus.


----------



## Guest (21. Jun 2004)

Das war es!
Vielen Dank für die Hilfe!

Die Anführungszeichen bewirken Wunder, wenn die Parameter ergänze werden.

Das kann man so einbauen, wenn man Parameter öfters generieren will. 
(cmdProgFile muss man natürlich noch über eine Methode zusammensetzen, wobei man „/“ mit „\\“ ersetzten muss)


```
String cmdQuelle = "cmd /c ";
String cmdProgFile="c:\\aktueller Ordner\\test von heute.pdf";
cmdProgFile="\""+ cmdProgFile +"\"";

String execParameter= cmdQuelle + cmdProgFile;
Runtime.getRuntime().exec(execParameter);
```


----------



## abschnitt (21. Jun 2004)

Hab wohl vergessen mich einzuloggen.
Nochmals Danke.


----------

