Pfad mit Leerzeichen über exec starten

Status
Nicht offen für weitere Antworten.

abschnitt

Mitglied
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
 
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?
 
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.
 
Unter UNIX wird das Leerzeichen im Pfad mit '\' maskieren.
Unter Windows solltest du den Pfadnamen mit Leerzeichen in " setzen, also z.B.
Code:
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.
 
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)

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

String execParameter= cmdQuelle + cmdProgFile;
Runtime.getRuntime().exec(execParameter);
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben