2013-05-07 2 views
2

Недавно я обновил свою версию Java до JDK7u21. В release notes обновления 21 четко сказано о проблеме с использованием Runtime.exec.ProcessBuilder и команда с пространством

Поэтому я хочу изменить свой код для использования ProcessBuilder. Я пытаюсь выполнить команду с пробелами в ней. Но даже если для этого используется ProcessBuilder, я попадаю в C: \ Users \ Parag.Joshi \ Documents, а не в точный каталог.

Ниже мой код:

ProcessBuilder p = new ProcessBuilder("cmd", "/c", "explorer ", "C:\Local Disk D\My Tutorial"); 
p.start(); 

Я посмотрел на Java execute a command with a space in the pathname, но не получил ключ.

+0

Никаких котировок вокруг не работает. – ParagJ

ответ

4

Я только что протестировал его на своей локальной машине.

Поведение вызвано из-за пробега после "explorer ". удалите это пространство, и оно будет работать. Также вам нужно указать \.

ProcessBuilder p = new ProcessBuilder("cmd", "/c", "explorer", 
             "C:\\Local Disk D\\My Tutorial"); 
+0

Отлично! Да, я забыл сбежать. Тем не менее, я избежал этого в своем коде. Но это проблема пространства после проводника. Благодарю. – ParagJ

+0

Добро пожаловать! Уверен, что вы скрылись от '\\', иначе код не выполнил бы и не показал бы вам домашний каталог, я добавил его только ради полноты ;-) – A4L

Смежные вопросы