Правильный синтаксис для использования Runtime.exec с «Program Files» - PullRequest
1 голос
/ 27 августа 2009

Я хочу использовать метод со следующей подписью:

exec(String command, String[] envp, File dir) 

Предположим, что моя программа называется "myprog.exe" и находится в "C: \ Program Files \ My Software". Какой правильный синтаксис для использования Runtime.exec? Я получаю сообщение об ошибке «Система не может найти указанный файл». Чтобы уточнить, я хочу запустить myprog.exe из каталога "C: \ Program Files \ My Software", а не из того места, где работает java-программа

1 Ответ

2 голосов
/ 27 августа 2009

Я бы порекомендовал использовать вместо этого другой аромат exec():

exec(String[] cmdarray, String[] envp, File dir) 

Используя этот метод, вы можете передать полный путь к исполняемому файлу в cmdarray[0] и аргументы команды (если есть) в последующих элементах массива. Это более надежно, чем иметь дело с цитированием или экранированием, или с тем, что вам, возможно, придется сделать, чтобы заставить его работать с упрощенным exec().

Чтобы ответить на другую часть вашего вопроса, обязательно укажите путь, по которому вы хотите запустить свою программу ("C:\\Program Files\\My Software"), в параметре dir указанного выше вызова exec(). Также обратите внимание, что я использовал \\ в имени пути, потому что Java использует \ в качестве escape-символа, что означает, что вы должны использовать два в буквенной строке, представляющей имя пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...