On 04/10/2014 16:54, Bernd Eckenfels wrote:
Hello,

I noticed that MSDN CreateProcess(W) talks about using "cmd /c" for
executing .bat and .cmd files:

"To run a batch file, you must start the command interpreter;
set lpApplicationName to cmd.exe and set lpCommandLine to the
following arguments: /c plus the name of the batch file."

However the JDK implementation seems to accept an executable path pointing
to a *.bat or *.cmd file.


It's for compatibility reasons. There is a lot of code that calls Runtime.exec to run .cmd and .bat scripts. Early versions of the JDK didn't do much validation in this area and just passed the input to the win32 call. The checking has been tightened up a lot since and part had to deal with compatibility and keeping existing applications working.

-Alan

Reply via email to