Applikation(Leaft for Dead) von Java aus starten

Hi,
ich habe folgendes Problem.
Ich starte Left for Dead zurzeit mit einer Verknüpfung für den Local Server.

Dies ist der Inhalt der Verknüpfung:
„F:\Spiele\Left 4 Dead\Left 4 Dead\left4dead.exe“ -console -novid +exec game.cfg

So nun möchte ich das ganze von Java aus starten.
Das probiere ich jetzt schon 3 Stunden und ich bin total fertig, da es einfach nicht hinhaut :*(.

Folgende Aufrufe habe ich schon probiert.
__________________________________________________ ______________________________________
String dir=„F:\Spiele\Left 4 Dead\Left 4 Dead\left4dead.exe -console -novid +exec game.cfg“;
// String cmdstart[] = { „cmd.exe“, „/C“, dir};
// Runtime.getRuntime().exec(cmdstart);
//Runtime.getRuntime().exec(""F:\Spiele\Left 4 Dead\Left 4 Dead\left4dead.exe -console -novid +exec game.cfg „“);
//Runtime.getRuntime().exec(„start „F:\Spiele\Left 4 Dead\Left 4 Dead\left4dead.exe -console -novid +exec game.cfg““);
//Runtime.getRuntime().exec(„cmd.exe /c start „F:\Spiele\Left 4 Dead\Left 4 Dead\left4dead.exe -console -novid +exec game.cfg““);
__________________________________________________ _______________________________________
Keiner von diesen führte zum Erfolg.
Wenn mir jemand helfen könnte, wäre ich super dankbar,da ich irgendwie immer noch kein Land sehe bei dem Problem.

Gruß
Christoph

Wenn mir jemand helfen könnte, wäre ich super dankbar,da ich
irgendwie immer noch kein Land sehe bei dem Problem.

Das Problem liegt nicht an Java, sondern der Windows cmd.exe und wie sie die Parameter hinter dem „/C“ verarbeitet. Wenn du das ganze in der Windows-Konsole aufrufen kannst, dann sollte es auch 1:1 mit Runtime.exec() funktionieren.

Die Tricks sind:
Du musst alle Dateinamen immer mit "-Anführungszeichen klammern, für den Fall dass sich dort Leerzeichen drin befinden. Zusätzlich musst du noch den kompletten Befehl hinter dem /C ebenfalls mit " einschliessen.

In der Windows-Konsole solltest du dein Programm also mit dem Befehl
cmd.exe /c „„F:\Spiele\Left 4 Dead\Left 4 Dead\left4dead.exe“ -console -novid +exec game.cfg“
starten können.

In Java würde das also bedeuten:

String subCmd = "F:\\Spiele\\Left 4 Dead\\Left 4 Dead\\left4dead.exe "
 + "-console -novid +exec game.cfg";
String cmd[] = { "cmd.exe", "/C", subCmd};
Runtime.getRuntime().exec(cmd);

Oder:

String cmd = "cmd.exe /c \"\"F:\\Spiele\\Left 4 Dead\\Left 4 Dead\\"
 + "left4dead.exe\" -console -novid +exec game.cfg\"";
Runtime.getRuntime().exec(cmd);

DAnke für die Antwort.
Ich habe das jetzt nicht geprüft allerdings habe ich jetzt eine gute Lösung die so aussieht:

String cmdStart[] = {„F:\Spiele\Left 4 Dead\Left 4 Dead\left4dead.exe“, „-console“, „-novid“, „+exec“, „game.cfg“};
Runtime.getRuntime().exec(cmdStart);

Danke trotzdem für die Hilfe.

Gruß
Christoph

String cmdStart[] = {„F:\Spiele\Left 4 Dead\Left 4
Dead\left4dead.exe“, „-console“, „-novid“, „+exec“,
„game.cfg“};
Runtime.getRuntime().exec(cmdStart);

Das ist schon klar. Ich dachte du wolltest es unbedingt in einer Konsole starten und deswegen das „cmd /c …“ gewollt ist. Wenn du das nicht brauchst, kannst du die Anwendung natürlich direkt wie oben starten :wink: