Leerzeichen in Pfad...

PissPain

Aktives Mitglied
Hallo,
ich versuche ein Programm in Java zu starten, doch habe ich ein Problem.
Das Programm liegt in einem Verzeichnis, das ein Leerzeichen beinhaltet (My Documents).
Ich habe schon viel ausprobiert, doch hat nichts geklappt…

"\"My Documents/Programs/Programm.command\"" sah ich schon ziemlich oft, aber bringt nichts.
Java liest den Pfad einfach nur bis "My" durch und kann das Programm deshalb nicht starten.

Ich hoffe ihr kennt euch damit gut aus und könnt mir eine schnelle einfache Antwort geben :)
Also nicht das ich gleich was ausprobieren soll, was eh nicht funktioniert (wäre trotzdem dazu bereit).

Vielen Dank :)
 

Tobse

Top Contributor
Ich vermute mal du liest den Pfad von der Kommandozeile? Denn der Konstruktor von [JAPI]File[/JAPI] hat damit kein Problem.

Auf der Kommandozeile (sowie in UNIX als auch DOS) ist es so, dass die Argumente durch Leerzeichen getrennt werden. Soll nun ein Argument ein Leerzeichen enthalten, muss es durch
Code:
"
am Start und am Ende markiert werden:

Code:
Kommandozeile:
java Test arg1 arg2 arg3

3 Parameter an main(String... args):
["arg1", "arg2", "arg3"]


Kommandozeile:
java Test arg1 "arg2 arg3"

2 Parameter an main(String... args):
["arg1", "arg2 arg3"]

P.S.: Soll ein Argument ein
Code:
"
enthalten, muss es, wie in Java auch, escaped werden. In UNIX ist
Code:
\
das Escape-Zeichen, in DOS
Code:
^
:
Code:
DOS:
C:\>java Test arg1 "arg2^"arg3"

UNIX:
root@unix:~$ java Test arg1 "arg2\"arg3"
 

PissPain

Aktives Mitglied
Ich zeig dir wie ich das benutze:
Java:
Runtime.getRuntime().exec("\"" + PATH + "build.command\"");

Also, nicht im Terminal, sondern im Java-Code.
Das "PATH" ist die Variable für "/Users/user/Documents/My Documents/Programs/", bloß hab ich halt das Problem mit dem Leerzeichen.

Aber egal was ich probiere, es wird immer eine Exception geworfen, die mir sagt, dass ich das Programm "/Users/user/Documents/My" nicht öffnen kann.

Vielen Dank.

EDIT: Das Gleiche mit der Instanz von "File" lässt die gleiche Exception erscheinen.
 
Zuletzt bearbeitet:

Tobse

Top Contributor
Der Aufruf von [JAPI]Runtime#exec[/JAPI] ist exakt das gleiche wie wenn man den Parameter auf der Kommandozeile eingibt und ENTER drückt.
Was also bei DOS ankommt ist folgendes:
Code:
"/Users/user/Documents/My Documents/Programs/build.command"
. Das wird natürlich nicht gefunden, da fehlt der Laufwerksbuchstabe; oder aber das
Code:
/
aus [c]PATH[/code] ist zu viel und es handelt sich um einen relativen Pfad.
 
Zuletzt bearbeitet:

PissPain

Aktives Mitglied
Der Laufwerksbuchstabe fehlt nicht, da ich an einem Mac arbeite.
Nun weiß ich aber nicht wirklich, was ich oder wie ich die Zeile schreiben soll.
 

Tobse

Top Contributor
Hm, was dein Mac OS da macht kann ich jetzt auch nichtmehr nachvollziehen. Probier das mal mit [JAPI]ProcessBuilder[/JAPI]:

Java:
ProcessBuilder pb = new ProcessBuilder("build.command");
pb.directory(new File('/' + PATH));
pb.start();
 

kaoZ

Top Contributor
Warum arbeitest du eigentlich nicht mit
Java:
System.getProperty ("user.dir");

Hat das bestimmte Gründe?
 
Zuletzt bearbeitet:

PissPain

Aktives Mitglied
Ich will es dem Benutzer ermöglichen, ein "Workspace"-Ordner auszuwählen.
Also darf so etwas nicht vorkommen, weil Niemand weiß, ob der Ordner Leerzeichen enthält.
 

kaoZ

Top Contributor
Dann verstehe ich den Problem nicht,
Code:
JFileChooser
,
Code:
getSelectedFile();
und alles ist wunderbar.
 
Zuletzt bearbeitet:

PissPain

Aktives Mitglied
Wenn ich mir eine Instanz von File durch
Java:
getSelectedFile();
liefern lasse, bringt das nicht viel mehr, als wie
Java:
new File("/Users/user/Documents/My Dokuments/Programs");

Noch mal: Mein Problem ist, dass wenn ich ein Programm durch Java öffnen will, es nicht geöffnet werden kann, da der Pfad als 2 Argumente anerkannt wird und dadurch dass das Programm nur ein Argument einliest, wird die andere Hälfte verschluckt.
Wie schaffe ich es, dass der Pfad als Ganzes angenommen wird??
Und noch mal, nicht in der Konsole, sondern im Java-Code (Ich hab ja schon ein Beispiel gepostet).

Und falls es immer noch nicht gelöst werden kann, dann liegt es wahrscheinlich im Zusammenspiel von Java und OS X (Normalerweise bin ich sonst auch an einem Windows-PC, aber nun wollte ich mal was anderes benutzen).

Vielen Dank.
 

kaoZ

Top Contributor
Poste doch bitte mal den genauen Pfad, ich versteh dein Problem nicht ..... wenn du ein Leerzeichen zwischen der eingabe hast

dann kannst du entweder einen StringBuilder nutzen oder per + Operator (concat();) dieses in deinem String hinzufügen

Java:
String path = System.getProperty("user.dir") + "/Programms/" + "Mein Ordner/"; 
// oder 
String path = System.getProperty("user.dir") + "/Programms/" + "Mein" + " " + "Ordner/"; 
//oder
StringBuilder builder = new StringBuilder(System.getProperty("user.dir");
builder.append("/Programms/Mein Ordner/");
 
Zuletzt bearbeitet:

PissPain

Aktives Mitglied
Ok, den String richtig zusammen zu stellen, ist jetzt nicht das Problem.
Also, ich bekomme den String als Ganzes, aber das hier
Java:
Process pro=Runtime.getRuntime().exec(new File("\"/Users/user/Documents/My Documents/Programs/build.command\""));
wird nicht als Ganzes anerkannt.

Also nicht ich habe das Problem, dass es ein Leerzeichen in sich trägt, sondern die Methode, der ich den Pfad mit dem Leerzeichen als Parameter übergebe.
Ich will halt nur eine Lösung finden, damit die Methode den Pfad als Ganzes benutzt.

Das hier:
Java:
Process pro=Runtime.getRuntime().exec(new File("\"/Users/user/Documents/My Documents/Programs/build.command\""));
ist das Gleiche wie das hier:
Java:
Process pro=Runtime.getRuntime().exec(new File("\"/Users/user/Documents/My\""));

Ich will nur, dass die Methode den Pfad als Ganzes benutzt.

Vielen Dank.
 

PissPain

Aktives Mitglied
Dabei wird aber die gleiche Exception geworfen.
Ich denke mal, dass es hoffnungslos ist, da nichts hilft, das System will den Pfad einfach nicht als Ganzes anerkennen, egal was man macht.

Eigentlich muss es eine Lösung geben, ich meine ja, nur wegen einem Leerzeichen im Pfad, will ich mein Projekt nicht abbrechen und es wäre ziemlich komisch, gebe es dafür keine Lösung.
 

PissPain

Aktives Mitglied
Jetzt wird's mies:
Nach sehr vielen Versuchen habe ich es endlich geschafft. Es ist ziemlich komisch, verstehe es immer noch nicht, aber wenn man mal kein Zeichen usw. setzt, funktioniert es einwandfrei :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Leerzeichen im Pfad automatisch erkennen Java Basics - Anfänger-Themen 30
I Bei Umlauten und Leerzeichen im Pfad, wird Datei nicht gefunden Java Basics - Anfänger-Themen 5
O Leerzeichen im Pfad Java Basics - Anfänger-Themen 8
melaniemueller setCharAt Leerzeichen zusätzlich einfügen Java Basics - Anfänger-Themen 8
A 1 Leerzeichen durch zwei Leerzeichen ersetzen Java Basics - Anfänger-Themen 4
HolyFUT Input/Output Leerzeichen aus String entfernen - klappt nicht! Java Basics - Anfänger-Themen 13
T Leerzeichen im String entfernen Java Basics - Anfänger-Themen 6
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
M Warum werden character, die Leerzeichen sind, nicht korrekt verarbeitet? Java Basics - Anfänger-Themen 2
B String nach erstem Leerzeichen trennen Java Basics - Anfänger-Themen 7
O Methode über Leerzeichen Java Basics - Anfänger-Themen 13
D jsoup get class name mit leerzeichen Java Basics - Anfänger-Themen 7
O String Methode für längste Sequenz von Leerzeichen Java Basics - Anfänger-Themen 35
J am Anfang eines String ein Leerzeichen löschen Java Basics - Anfänger-Themen 6
D Leerzeichen entfernen Java Basics - Anfänger-Themen 4
P Java Leerzeichen in der Ausgabe entfernen Java Basics - Anfänger-Themen 3
Phillip Leerzeichen nach Zahlen bei Ausgabe Java Basics - Anfänger-Themen 6
M (Leerzeichen) zu einem gesuchten String Java Basics - Anfänger-Themen 4
S Leerzeichen zwischen zwei Zeichen im String entfernen Java Basics - Anfänger-Themen 19
C Aus einer Textdatei Zahlen lesen mit Leerzeichen Java Basics - Anfänger-Themen 11
T Leerzeichen zählen mit Rekursion Java Basics - Anfänger-Themen 17
H String mit Leerzeichen in Variablen zerlegen Java Basics - Anfänger-Themen 4
M String vergleichen - Leerzeichen Ignorieren? Java Basics - Anfänger-Themen 4
M nach Typenkonvertierung Leerzeichen ersetzen Java Basics - Anfänger-Themen 2
J Alle Leerzeichen aus String entfernen Java Basics - Anfänger-Themen 13
P int-Werte im String (mit Hilfe vom Leerzeichen) trennen? Java Basics - Anfänger-Themen 2
S Leerzeichen herausfiltern Java Basics - Anfänger-Themen 10
T Zeichen als Leerzeichen weitergegeben Java Basics - Anfänger-Themen 13
D Hilfe beim einlesen eines Strings mit Leerzeichen Java Basics - Anfänger-Themen 16
G Multiple Leerzeichen entfernen Java Basics - Anfänger-Themen 13
C Leerzeichen im char Array setzen Java Basics - Anfänger-Themen 33
C Stringeingabe: kein Satz wegen Leerzeichen möglich Java Basics - Anfänger-Themen 3
D Erste Schritte RandomAccessFile "Leerzeichen" löschen Java Basics - Anfänger-Themen 6
T Erste Schritte Eingelesenen Satz - Wörter und Leerzeichen getrennt in 2x Array's Java Basics - Anfänger-Themen 7
G Leerzeichen einfügen Java Basics - Anfänger-Themen 3
3 Leerzeichen erkennen Java Basics - Anfänger-Themen 3
F Leerzeichen zwischen jeden Buchstaben eines Strings einfügen Java Basics - Anfänger-Themen 16
D Wort nach Leerzeichen - String Java Basics - Anfänger-Themen 10
X nach split leerzeichen weg Java Basics - Anfänger-Themen 4
K Int Array mit "Leerzeichen" füllen Java Basics - Anfänger-Themen 2
D mehrere Leerzeichen durch 1 Leerzeichen ersetzen Java Basics - Anfänger-Themen 3
M property-Datei: key mit Leerzeichen? Java Basics - Anfänger-Themen 3
I Zeichen zählen ohne Leerzeichen Java Basics - Anfänger-Themen 3
A Leerzeichen bei Ausgabe? Java Basics - Anfänger-Themen 3
N java.util.Arrays.sort Warum sind Leerzeichen vor alphabetischen Zeichen sortiert? Java Basics - Anfänger-Themen 12
C mehrere Leerzeichen zwischen Strings Java Basics - Anfänger-Themen 4
P Probleme mit Runtime.exec und Leerzeichen Java Basics - Anfänger-Themen 15
G String in Array einfügen, leerzeichen! Java Basics - Anfänger-Themen 2
S regular expression - bekomme leerzeichen nicht raus Java Basics - Anfänger-Themen 3
O Leerzeichen aus Java Basics - Anfänger-Themen 11
P Leerzeichen-Problem bei Verzeichnispfad Java Basics - Anfänger-Themen 7
M wie auf ein feld mit leerzeichen in einem char array prüfen? Java Basics - Anfänger-Themen 4
B Woerter, Zeichen, Leerzeichen zaehlen - Problem Java Basics - Anfänger-Themen 3
G Leerzeichen in String einfügen Java Basics - Anfänger-Themen 1
H wie spreche ich durch leerzeichen im string neuen index an Java Basics - Anfänger-Themen 10
F Leerzeichen in Pfadangabe beim Befehl exec() Java Basics - Anfänger-Themen 5
G Split Operation: ein oder mehrere Leerzeichen Java Basics - Anfänger-Themen 7
padde479 Runtime.getRuntime.exec() Leerzeichen unterdrücken Java Basics - Anfänger-Themen 2
M Leerzeichen löschen Java Basics - Anfänger-Themen 2
F Leerzeichen in Integer Array speichern Java Basics - Anfänger-Themen 7
I String mit Leerzeichen einlesen Java Basics - Anfänger-Themen 3
D Abfrage auf Leerzeichen Java Basics - Anfänger-Themen 5
G Im Zeichenarray Leerzeichen invertieren Java Basics - Anfänger-Themen 5
G String mit next()-Methode einlesen - keine Leerzeichen! Java Basics - Anfänger-Themen 11
S Problem beim setzen von JAVA_HOME (Leerzeichen?) Java Basics - Anfänger-Themen 7
R Am Begin und Ende eines Strings die Leerzeichen löschen ? Java Basics - Anfänger-Themen 3
M Leerzeichen in Dateinamen ein Problem ? Java Basics - Anfänger-Themen 4
F Leerzeichen in einen String einfügen. Java Basics - Anfänger-Themen 15
D ausgabe verändern (statt zeilenumbruch leerzeichen) Java Basics - Anfänger-Themen 2
S Einen langen String beim Leerzeichen in zwei Strings zerlege Java Basics - Anfänger-Themen 3
S txt-Datei nach Leerzeichen Splitten lassen! Java Basics - Anfänger-Themen 3
S Leerzeichen replacen Java Basics - Anfänger-Themen 5
F Problem mit Zeichenkette nur aus Leerzeichen Java Basics - Anfänger-Themen 4
T String Leerzeichen wegschneiden Java Basics - Anfänger-Themen 2
L Leerzeichen erfragen Java Basics - Anfänger-Themen 4
L Steuerzeichen für Space (Leerzeichen)? Java Basics - Anfänger-Themen 3
J Dateipfad mit Leerzeichen Java Basics - Anfänger-Themen 10
C Leerzeichen aus String entfernen Java Basics - Anfänger-Themen 8
A replaceAll und Leerzeichen Java Basics - Anfänger-Themen 2
W Dotenv relativer vs absoluter Pfad Java Basics - Anfänger-Themen 2
J Pfad zerlegen Java Basics - Anfänger-Themen 2
berserkerdq2 Wie gebe ich den Pfad zu einer Datei an, die in einem Ordner in Eclipse ist? Java Basics - Anfänger-Themen 1
S Längster Pfad zwischen zwei Vertices in einem Graph Java Basics - Anfänger-Themen 3
C Pfad zu Properties-File bei ResourceBundle Java Basics - Anfänger-Themen 7
CptK Richtigen Pfad beim einlesen von Datei finden Java Basics - Anfänger-Themen 2
P Möglichen Pfad überprüfen Java Basics - Anfänger-Themen 5
M Java GUI explorer aufrufen um Pfad zu bekommen Java Basics - Anfänger-Themen 3
R FXMLLoader Pfad falsch`? Java Basics - Anfänger-Themen 4
S Alternativer Pfad Java Basics - Anfänger-Themen 5
R speicherort Mac pfad angeben Java Basics - Anfänger-Themen 3
L Breadth-First Search statt einem Pfad, alle Pfade herausfinden Java Basics - Anfänger-Themen 4
O Best Practice Datei-Pfad zerlegen Java Basics - Anfänger-Themen 4
topi relativer Pfad in einem Runnable JAR file Java Basics - Anfänger-Themen 12
H pfad finden Java Basics - Anfänger-Themen 12
H Pfad Program Files\Common Files\Oracle\Java\javapath Java Basics - Anfänger-Themen 3
L Pfad zum Jar Java Basics - Anfänger-Themen 7
it_is_all Bild-Pfad wird gefunden, nicht aber Textdatei-Pfad Java Basics - Anfänger-Themen 8
B Log4J Pfad des Logfiles definieren Java Basics - Anfänger-Themen 6
D Umgebungsvariable Pfad javaw.exe für Programmstart auf Windows Java Basics - Anfänger-Themen 1
D Pfad Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben