Ответ 1
error=5
означает один из:
1) файл не является исполняемым
2) файл недоступен
РЕДАКТИРОВАТЬ: не удалять исключение 3) команда (example.exe) выходит с кодом выхода 5
Какие проблемы могут привести к тому, что метод Java ProcessBuilder.start возвращает IOException с примечанием, в котором говорится об ошибке = 5?
В частности, мы увидели, что система удаленного клиента запускает некоторый код Java по строкам...
ProcessBuilder pb = new ProcessBuilder(cmdArray);
pb.redirectErrorStream(true);
Process p = pb.start();
... вывести исключения вроде этого...
java.io.IOException: CreateProcess: C:\example\example.exe argument1 argument2 error=5
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
at java.lang.ProcessBuilder.start(Unknown Source)
at example_code_above
Мы подтвердили, что команда, отмеченная в исключении, "C:\example\example.exe аргумент1 аргумент2" может быть успешно запущена вручную через cmd.exe, поэтому мы уверены, что сама команда не нарушена.
error=5
означает один из:
1) файл не является исполняемым
2) файл недоступен
РЕДАКТИРОВАТЬ: не удалять исключение 3) команда (example.exe) выходит с кодом выхода 5
Александр прав, это безопасность Windows, которая не позволяет этому процессу запускаться, но команда powershell не работает для меня. вот что я сделал:
Теперь ваш пользователь может выполнить эту программу. Ура!
Иногда это происходит из-за неправильного ввода пути в код. Для окон введите "\\"
в качестве разделителя пути вместо "\"
Например, измените путь на "C:\\example\\example.exe"
У меня такое же исключение из-за Windows UAC.
Это может произойти, даже если ваша учетная запись имеет права администратора.
Чтобы выполнить такую команду, мне пришлось использовать powershell для повышения привилегий.
powershell start-process 'start.bat' -Verb RunAs