Я бы порекомендовал использовать вместо этого другой аромат exec()
:
exec(String[] cmdarray, String[] envp, File dir)
Используя этот метод, вы можете передать полный путь к исполняемому файлу в cmdarray[0]
и аргументы команды (если есть) в последующих элементах массива. Это более надежно, чем иметь дело с цитированием или экранированием, или с тем, что вам, возможно, придется сделать, чтобы заставить его работать с упрощенным exec()
.
Чтобы ответить на другую часть вашего вопроса, обязательно укажите путь, по которому вы хотите запустить свою программу ("C:\\Program Files\\My Software"
), в параметре dir
указанного выше вызова exec()
. Также обратите внимание, что я использовал \\
в имени пути, потому что Java использует \
в качестве escape-символа, что означает, что вы должны использовать два в буквенной строке, представляющей имя пути.