2014-10-17 5 views
2

Я бег этой команды, используя мою командную строку и она работает нормально: без каких-либо проблем:Java Runtime Exec метод ошибки метания при использовании с обычаем URI

start demo:" -ping -ip 172.18.102.65"

В приведенной выше команде, demo: является a custom uri, который я создал, и передаю параметры этому настраиваемому uri, которые являются -ping, -ip и <an_ip_address>, чтобы сделать эту работу custom uri.

Но когда я запускаю ту же команду, используя этот код, то он не работает:

Runtime.getRuntime().exec(new String[] {"cmd.exe", "/c", "start", "demo:\" -ping -ip 172.18.102.65\""}); 

Я получаю сообщение об ошибке: Windows Cannot find '-ping'

Пожалуйста, предложите, как сделать эту работу.

ответ

1

Переписывая свой ответ после выяснения вопроса (спасибо!).

Это синтаксис, который работает для меня:

Runtime.getRuntime().exec(new String[] {"cmd.exe", "/c", "start demo:\" -ping -ip 172.18.102.65\""}); 

кажется, что код, который анализирует аргументы в классе java.lang.ProcessImpl интерпретирует \" таким образом, что делает результирующее окна командной строки неверен. По-видимому, использование «start ...» в качестве единственного аргумента разрешает это.

Edit:, чтобы сделать эту работу URI в Internet Explorer, вам нужно, чтобы избежать двойных кавычек в соответствии с правилами кодирования URL, таким образом, вам необходимо ввести следующие данные в адресной строке:

demo:%22 -ping -ip 172.18.102.65%22 

где %22 (шестнадцатеричное значение) представляет код кодирования URL для "

+0

Было бы проще понять, если бы вы объяснили это в своем вопросе, прежде чем я отправил свой ответ. Я вижу, что вы добавили его сейчас. – Lolo

+0

Поскольку я не могу протестировать ваш пользовательский uri, вы могли бы хотя бы показать, как связанное приложение или команда определяется в реестре? – Lolo

+0

@ user182944 см. Новое редактирование. Если вам нужно больше, задайте вопрос _new_ full-fledged, а не комментарий. – Lolo