Mam polecenie, które trzeba uruchomić w Javie wzdłuż tych linii:Having przestrzenie w Runtime.getRuntime() exec 2 wykonywalnych
C:\path\that has\spaces\plink -arg1 foo -arg2 bar "path/on/remote/machine/iperf -arg3 hello -arg4 world"
Polecenie to działa dobrze, gdy ścieżka nie ma miejsca, ale kiedy mam przestrzenie, wydaje mi się, że to nie działa. Próbowałem następujące rzeczy, bieganie 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);
jak również
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);
Ale nie wydaje się być cokolwiek. Jakieś myśli o tym, co robię źle?
Jako ogólna rada: Odczyt (i implementacja) * wszystkie * zalecenia [Kiedy Runtime.exec() nie będzie] (http: //www.javaworl d.com/jw-12-2000/jw-1229-traps.html). To może rozwiązać problem. Jeśli nie, powinien podać więcej informacji na temat przyczyny niepowodzenia. Następnie zignoruj, że odwołuje się do 'exec' i zbuduj' Process' używając 'ProcessBuilder'. Przerwij także 'String arg' na' String [] args', aby uwzględnić argumenty, które same zawierają spacje. –