Сумма двух целых чисел в Java

Joachim прав, но его ответ недостаточен, когда ваш процесс ожидает унифицированных аргументов, как показано ниже:

myProcess.exe /myParameter="my value"

Как видно stefan, ProcessBuilder увидит пробелы в вашем аргументе и обернет его в кавычки, например это:

myProcess.exe "/myParameter="my value""

Разрыв значений параметров, так как рекомендует Joachim, приведет к пробелу между /myparameter= и "my value", который не будет работать для этого типа параметра:

myProcess.exe /myParameter= "my value"

Согласно Sun, в их бесконечной мудрости это не ошибка, а двойные кавычки могут быть экранированы для достижения желаемого поведения.

] Чтобы окончательно ответить на вопрос Стефана, это альтернатива, которая ДОЛЖНА работать, если процесс, который вы вызываете, делает все правильно:

ArrayList test = new ArrayList();
test.add("\"C:\\Program Files\\USBDeview\\USBDeview.exe\"");
test.add("/enable \\\"My USB Device\\\"");

Это должно дать вам команду "C:\Program Files\USBDeview\USBDeview.exe" "/enable \"My USB Device\"", которая может выполнять обмануть; YMMV.

-13
задан ΦXocę 웃 Пepeúpa ツ 4 June 2017 в 09:28
поделиться