Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Possible causes of java.io.IOException: CreateProcess error=5

Tags:

What kind of problem(s) could cause Java's ProcessBuilder.start method to return an IOException with a note saying error=5?

Specifically, we've seen a remote customer system running some Java code along the lines of...

ProcessBuilder pb = new ProcessBuilder(cmdArray);
pb.redirectErrorStream(true);
Process p = pb.start();

...throw exceptions like this...

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

We have confirmed that the command noted in the exception, "C:\example\example.exe argument1 argument2" can be run successfully by hand via cmd.exe, so we are confident the command itself is not broken.

like image 418
Matt Sheppard Avatar asked Jul 13 '11 05:07

Matt Sheppard


2 Answers

error=5 means one of:

1) file is not executable
2) file is not accessible

EDIT: wont throw exception
3) the command (example.exe) exits with exit code 5

like image 139
Op De Cirkel Avatar answered Sep 30 '22 15:09

Op De Cirkel


Alexandr is correct, it's Windows security that's not allowing that process to run, but that powershell command didn't work for me. here's what I did:

  • Open up Windows explorer, and navigate to example.exe
  • Right click on it and choose "Properties"
  • Go to the "Security" tab and click the "Edit" button
  • Select your username in the top box and in the bottom one give "Full Control" or at least "Read & Execute"
  • Click OK to get rid of these boxes

Now your user can execute that program. Yay!

like image 33
Ryan Shillington Avatar answered Sep 30 '22 17:09

Ryan Shillington