Ambiente
Problemas/sintomas
Caso de uso - Um problema foi relatado ao substituir o JDK do Oracle por Open JDK em instâncias do Campaign em execução no Windows.
No momento, o cliente tem o Oracle JDK v1.8.0.191 instalado em todas as instâncias do Windows Campaign. Ainda assim, depois de substituir o JDK do Oracle por Open JDK em uma de suas instâncias do Campaign, a WEB falhou ao iniciar com o seguinte erro:
JVM-510037 Cannot find the Java dynamic library. Check that a JDK or a JRE is installed on the machine. (iRc=-53)
No entanto, o Java é instalado corretamente com as variáveis de ambiente Path e JAVA_HOME certas.
Para executar o módulo da Web, a biblioteca dinâmica da JVM deve estar visível para o Campaign. Ao remover o JDK do Oracle, a chave JavaSoft do registro do Windows é removida e qualquer referência a essa biblioteca da JVM também é perdida.
Há duas soluções para resolver esse problema:
Primeiro, você pode adicionar manualmente a chave JavaSoft ao registro do Windows em Computer\HKEY_LOCAL_MACHINE\SOFTWARE.
Veja um exemplo (com OpenJDK 1.8_292
) do que é necessário adicionar:
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"
E a seguinte pasta de caminho foi adicionada à Caminho variável de ambiente.
C:\Users\perth\Java\openjdk-8u292-b10\bin
O módulo Web deve ser capaz de iniciar como esperado:
O segundo é que o uso de duas variáveis de ambiente do Windows pode ser definido para indicar onde o arquivo jvm.dll pode ser encontrado pelo módulo da Web.
As variáveis são:
Veja um exemplo:
Observe que o uso do JVMLIBDIR estará visível do log se o log detalhado estiver ativado no módulo da Web.