In my experience
Cause
Maybe JVM.DLL is in the lower path.
C: \ Program Files \ Java \ jdk1.6.0_xx \ jre \ bin \ client \ (a)
and below the folder contains many DLLs needed by the JVM;
C: \ Program Files \ Java \ jdk1.6.0_xx \ jre \ bin \ (b)
So, JMV.DLL (which you dynamically link) is trying to find all the DLL in its parent folder (b).
Decision
Do not copy JVM.DLL to the same folder as your .exe !!!! Check the system variable PATH. It must contain paths (a) and (b). If so, perhaps your .exe will succeed.
source share