什么样的问题会导致Java的ProcessBuilder.start方法返回一个带有错误= 5的注释的IOException?
具体来说,我们已经看到一个远程客户系统运行一些Java代码......
ProcessBuilder pb = new ProcessBuilder(cmdArray);
pb.redirectErrorStream(true);
Process p = pb.start();
Run Code Online (Sandbox Code Playgroud)
...抛出这样的异常......
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
Run Code Online (Sandbox Code Playgroud)
我们已经确认在异常"C:\ example\example.exe argument1 argument2"中注明的命令可以通过cmd.exe手动成功运行,因此我们相信命令本身不会被破坏.
Op *_*kel 13
error=5
意指之一:
1)文件不可执行
2)文件不可访问
编辑:不会抛出异常
3)命令(example.exe)退出,退出代码为5
Alexandr是正确的,它的Windows安全性不允许该进程运行,但powershell命令对我不起作用.这就是我做的:
现在您的用户可以执行该程序.好极了!