ACC v7 error: “JVM-510037 Cannot find the Java dynamic library.”

There are 2 solutions: you can either manually add the JavaSoft key to the Windows registry under Computer\HKEY_LOCAL_MACHINE\SOFTWARE, or you can use two Windows environment variables can be defined to indicate where the jvm.dll file can be found by the Web module.

Description description

Environment

Adobe Campaign Classic v7 (ACC v7)

Issues/Symptoms

Use case - This issue occurred replacing Oracle JDK with Open JDK on Campaign instances running on Windows.

The example case had Oracle JDK v1.8.0.191 installed on all Windows Campaign instances. After replacing Oracle JDK with Open JDK in one of their Campaign instances, the WEB failed to start and gave the following error:

JVM-510037 Cannot find the Java dynamic library. Check that a JDK or a JRE is installed on the machine. (iRc=-53)

However, Java is correctly installed with the right Path and JAVA_HOME environment variables.

Resolution resolution

In order to run the Web module, the JVM dynamic library must be visible to Campaign. By removing Oracle JDK, the JavaSoft key from the Windows registry is removed and any references to that JVM library is also lost.

There are 2 solutions to resolve this issue:

Solution #1

You can manually add the JavaSoft key to the Windows registry under Computer\HKEY_LOCAL_MACHINE\SOFTWARE.

Here’s an example (with OpenJDK 1.8_292) of what you need to add:

Windows Registry Editor Version 5.00

[ HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft]

[ HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment] "CurrentVersion"="1.8""BrowserJavaVersion"="11.301.2"
[ HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.8] "MicroVersion"="0""RuntimeLib"="C:\\Users\\perth\\Java\\openjdk-8u292-b10\\jre\\bin\\server\\jvm.dll""JavaHome"="C:\\Users\\perth\\Java\\openjdk-8u292-b10\\jre"
[ HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.8.0_292] "MicroVersion"="0""RuntimeLib"="C:\\Users\\perth\\Java\\openjdk-8u292-b10\\jre\\bin\\server\\jvm.dll""JavaHome"="C:\\Users\\perth\\Java\\openjdk-8u292-b10\\jre"

And the following path folder has been added to the Path environment variable.

C:\Users\perth\Java\openjdk-8u292-b10\bin

The Web module should be able to start as expected:

Solution #2

The usage of two Windows environment variables can be defined to indicate where the jvm.dll file can be found by the Web module.

The variables are:

  • USEENV=1
  • JVMLIBDIR=<the path of the jvm.dll file>

Here’s an example:

Please note that the usage of the JVMLIBDIR will be visible from the log if the verbose logging is enable on the Web module.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f