Ich habe einen Befehl, den ich in dieser Richtung in Java ausgeführt werden müssen:Mit Leerzeichen in Runtime.getRuntime() exec mit 2 Executables
C:\path\that has\spaces\plink -arg1 foo -arg2 bar "path/on/remote/machine/iperf -arg3 hello -arg4 world"
Dieser Befehl funktioniert gut, wenn der Pfad keine Leerzeichen enthält, aber Wenn ich die Räume habe, scheint es nicht zu funktionieren. Ich habe folgende Dinge versucht, die Ausführung von Java 1,7
String[] a = "C:\path\that has\spaces\plink", "-arg1 foo", "-arg2 bar", "path/on/remote/machine/iperf -arg3 hello -arg4 world"
Runtime.getRuntime().exec(a);
sowie
String[] a = "C:\path\that has\spaces\plink", "-arg1 foo", "-arg2 bar", "path/on/remote/machine/iperf", "-arg3 hello", "-arg4 world"
Runtime.getRuntime().exec(a);
Aber weder scheinen etwas zu tun werden. Irgendwelche Gedanken darüber, was ich falsch mache ??
nicht umbrechen Als allgemeinen Hinweis: Lesen Sie (und implementieren) * alle * die Empfehlungen von [Wenn Runtime.exec() nicht] (http: //www.javaworl d.com/jw-12-2000/jw-1229-traps.html). Das könnte das Problem lösen. Wenn nicht, sollte es mehr Informationen über den Grund liefern, warum es fehlgeschlagen ist. Dann ignoriere, dass es sich auf 'exec' bezieht und baue den' Process' mit einem 'ProcessBuilder' auf. Zerlegen Sie auch einen 'String arg' in' String [] args', um Argumente zu berücksichtigen, die selbst Leerzeichen enthalten. –