Ich möchte Runtime.exec() verwenden, um einen anderen Prozess in einem Verzeichnis mit Leerzeichen zu initiieren. (Es klingt dumm, aber ich möchte wirklich meine Neugierde befriedigen)
Details des Problems (vereinfachte Version) Ich habe eine myprogram.exe, die sich in C:/Programme/MyProgram befindet.
Was ich beobachte: 1). wenn ich Runtime.exec("C://Program Files//MyProgram//myprogram.exe") aufrufe, zeigt IOException an: can't find file C:/Program, mit Fehlercode = 2. Ich denke, es muss ein Ergebnis der Leerzeichen
2). Ich habe es versucht: Runtime.exec("/"C://Program Files//MyProgram//myprogram.exe/""), IOException zeigt an: can't find the file: "C:/Programme/MeinProgramm/meinProgramm.exe"
3). Ich habe meine Lektion gelernt und versuche eine überladene Version von Runtime.exec(): File dir = new File("C://Program Files//MyProgram//"); Und ausführen: Runtime.exec("meinProgramm.exe", null, dir), und es sagt: can't find file myprogram.exe in C:/Program Files/MyProgram/
4). Ich habe versucht, 1), anstelle von "Program Files", benenne ich es in Program_Files, alles funktioniert
Ich weiß, ich kann auch ProcessBuilder verwenden, um ähnliche Dinge zu tun, aber ich kann es nicht in meinem Herzen gehen lassen... (Vielleicht ist es meine Schwäche). Kann mir jemand sagen, warum 2) und 3) nicht funktionieren?
Danke.