什么类型的问题会导致Java的ProcessBuilder.start方法返回一个带有注释error=5的IOException?
具体地说,我们已经看到一个远程客户系统运行一些Java代码,如下所示……
ProcessBuilder pb = new ProcessBuilder(cmdArray);
pb.redirectErrorStream(true);
Process p = pb.start();
像这样的...throw异常...
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 argument1 argument2“中记录的命令可以通过cmd.exe手动成功运行,因此我们确信该命令本身没有被破坏。
发布于 2014-07-02 01:13:36
Alexandr是对的,是Windows安全机制不允许该进程运行,但powershell命令对我不起作用。下面是我所做的:
现在,您的用户可以执行该程序了。耶!
发布于 2016-07-27 02:45:41
有时发生这种情况是因为您放入代码中的路径不正确。对于windows,将"\\"
作为路径分隔符,而不是"\"
,例如,将路径更改为"C:\\example\\example.exe"
发布于 2014-02-24 22:42:42
由于Windows UAC,我也有同样的异常。
即使您的帐户具有管理员权限,也可能发生这种情况。
为了能够运行这样的命令,我必须使用powershell来提升权限。
powershell start-process 'start.bat' -Verb RunAs
https://stackoverflow.com/questions/6674431
复制相似问题