[SOLVED] jvm.dll not found

Author: zoltan.seres@gmail.com (ZoliZoli)

Hi Community Members,   anybody has experience with the error message below?    Unable to locate DLL $cond("%DST_JVM_ARCH%" "x86" & %BITS%=32 | "%DST_JVM_ARCH%"="x64" & %BITS%=64,$filename(%DST_JVM_DLL%)(JNI_CreateJavaVM),; <path-to-%BITS%-bit-jvm.dll>(JNI_CreateJavaVM)); error 2   I'm using v9.6.01.01 and this error is show when starting IDF. Can someone explain the expression in $cond() and tell me how to resolve it?   Thanks in advance, Zoltan


  1. Hi Zoltan, Could you please have a look at the usys.asn file that is located in the .\common\adm directory of your Uniface installation. If I'm not mistaken then you should find the following line in the section [USER_3GL]:

    • $cond("%DST_JVM_ARCH%" "x86" & %BITS%=32 | "%DST_JVM_ARCH%"="x64" & %BITS%=64,$filename(%DST_JVM_DLL%)(JNI_CreateJavaVM),; <path-to-%BITS%-bit-jvm.dll>(JNI_CreateJavaVM))

    I'm not exactly sure what happened here, but it looks like that the installer had a little hick-up. The above line should have been resolved to something "meaningful" like e.g.

    • C:\Program Files (x86)\Compuware\Uniface 9.6.01\common\jre\bin\client\jvm.dll(JNI_CreateJavaVM)

    Note: In the above sample I assume that Uniface is installed in "C:\Program Files (x86)\Compuware\Uniface 9.6.01\". Hope this helps. Daniel

    Author: diseli (daniel.iseli@uniface.com)
  2. Hi Daniel,   I have this line in usys.asn but I thought this is a reference which is resolved dynamically. I selected the option to use the Java JRE pre-installed instead of the default in the Uniface install. There was an option to define the path to a custom jre directory. I haven't noticed any glitch during the installation. I have updated the path to "C:\Program Files (x86)\Java\jre7\bin\client\jvm.dll(JNI_CreateJavaVM)" and the error is not happening now.   thanks for your help! Zoltan

    Author: ZoliZoli (zoltan.seres@gmail.com)
  3. Hi Zoltan, Thanks for your reply. And you are welcome. I did a quick test here (with the Uniface 9.6.06 edist) and I can replicate the problem when I try to choose a 64-bit JRE (jvm.dll). It looks like as if the Setup cannot identify the DLL correctly under all circumstances. I, however, have to add here that I'm getting a Warning message box from the Setup saying:

    "ERROR: $cond() argument error in: ERROR: $fileinof() read error in: C:Program FilesJavajre7binserverjvm.dll" Never mind the missing backslashes here. Could it be that you've missed this warning during the installation of Uniface? Anyway, when I check the usys.asn in .\common\adm then I can see the same entry you've mentioned:

    $cond("%DST_JVM_ARCH%" "x86" & %BITS%=32 | "%DST_JVM_ARCH%"="x64" & %BITS%=64,$filename(%DST_JVM_DLL%)(JNI_CreateJavaVM),; <path-to-%BITS%-bit-jvm.dll>(JNI_CreateJavaVM)) Please note: when I chose a 32-bit JRE (jvm.dll) then (at least on my test machine) the Setup can correctly resolve the location of the jvm.dll (using the specified JRE path) - and the usys.asn will feature the correct entry to load the jvm.dll. I'm currently checking with engineering if this is a known issue. Hope this helps. Daniel

    Author: diseli (daniel.iseli@uniface.com)
  4. Hi Zoltan, Here's another quick update. After re-installing the 64-bit JRE7 the error disappeared. Confused I have to add here that I first installed update 76 of JRE7, uninstalled it and then installed update 75 of JRE7. At this moment I'm not really sure what's wrong here. Either there's a problem with the 64-bit version of JRE7 update 76, or the installation of update 76 was incomplete, or there was a problem with a previous installation of Java, or something else went wrong. It's a bit weird. Confused And I've also discussed this issue in the meantime with our engineers. Using a pre-installed JRE version is part of our QA tests when testing the installer of a new Uniface version. And (so far) we have not encountered this problem. Anyway, at least you have got it working and that is the important thing here (for now). Hope this helps. Daniel

    Author: diseli (daniel.iseli@uniface.com)
  5. Just a quick update: we've found a problem in the installer that will cause the Warning message box ("ERROR: $cond() argument error in: ERROR: $fileinof() read error in:...") mentioned above. Solving this issue should be pretty easy. And with a bit of luck we already can implement the fix into the Setup of Uniface 9.6.07 (scheduled for June 8, 2015). Will keep you posted. Daniel

    Author: diseli (daniel.iseli@uniface.com)
  6. Another quick update: this issue will be solved in Uniface 9.6.07 (scheduled for June 8, 2015). I've just verified the fix in the Setup of the version 9.6.07 edist. Hope this helps. Daniel

    Author: diseli (daniel.iseli@uniface.com)