java - JNI_ENOMEM from JNI_CreateJavaVM when calling dll that uses JNI from VB6 -
I work on a legacy system which has a VB6 app that requires calling Java code. VB uses C ++ dll to solve the solution we use, which uses JNI to call Java code. A little funky, but it really worked very well. However, I am going to a new god box, and I have gone into a serious problem with this. The built VB app works fine on the new box, but when I try to run it with VB, DLL fails to load VM, returns the return code-4 (JNI-ANMEM) from JNIKREJJam.
The two built-in apps and VBs are exactly the same DLL phones, and I have tried it with both Java 1.5 and 1.6. I have tried suggestions (redirecting stdout and stderr into files, adding a vfprint option, to add a -xcheck: jni option) but no avail. I can not get any additional information from jvm, as far as I can tell, the new box is configured to be the same as the old one (software, path, cell path, etc.), and both of the same release windows server 2003 Are running in New machine is a x64 more memory box (4 GB instead of 2 GB), but it is running 32-bit Windows
What else to think about any suggestions or ideas? Writing the whole thing more sensible is not an option - I need to know that DLL needs to find a way to load JVM, thinking that it is out of memory any help would be greatly appreciated. .
OK, I have understood it, I KS Chaneyeyde points out that JVM will be able to access the memory of the application's memory space. A large part of the inside of the storage is needed. So I used to use the Cincinnati VMM Utility to see how VB's memory looks. In fact, no major portion of the memory was available, and Vizio had some libraries loaded in the place that was designed for the piece reminiscent. It has come to know that when I installed Visio on a new machine, it was automatically installing VISIO UML add-in in VB. Since I do not use this add-in, I disabled it. With the add-in disabled, a large part of the free memory was found, and now JVM load is OK.
Comments
Post a Comment