Last Updated on 27/12/2023
Este tutorial irá mostrar como resolver o erro “Failed to load the JNI shared library” durante a inicialização do Spring Tool Suite.
O erro “Failed to load the JNI shared library” geralmente é causado por dois motivos:
- O tipo de arquitetura (32 ou 64 bits) entre seu Java e seu Spring Tool Suite são incompatíveis;
- Seu STS.ini está apontando para o diretório home do Java ao invés de apontar para o executável do Java.
Vamos explorar a solução para os dois casos:
Tipo de arquitetura (32 ou 64 bits) incompatível
A JDK e o STS são disponibilizados em duas arquiteturas, 32 and 64 bits, então a regra é utilizar versões compatíveis, de modo que ambas aplicações sejam 32 bits (em computadores 32 e 64 bits) ou 64 bits (exclusivo para computadores 64 bits). Portanto, caso as versões sejam diferentes, é bem possível que seu ambiente não irá funcionar como esperado.
Para verificar a versão do seu Java, execute o comando abaixo para imprimir a versão exata (64 bits no meu caso) conforme destacado na última linha:
C:\Users\bgasparotto>java -version java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
Quanto a versão do Spring Tool Suite, verifique qual versão você baixou do site, mas caso você não tiver certeza, o nome do arquivo segue um padrão onde versões 64 bits incluem x86_64
como parte do nome do arquivo, enquanto que versões 32 bits não incluem esse detalhe. Na imagem abaixo podemos ver que o primeiro arquivo é de uma versão 32 bits, enquanto que o segundo é 64 bits:
STS.ini não apontando para o executável do Java
O Spring Tool Suite é uma ferramenta baseada no Eclipse, logo, o STS possui um arquivo chamado STS.ini
para configurar sua inicialização de forma semelhante que o Eclipse possui o seu eclipse.ini
. Sendo assim, este arquivo de configuração está presente no mesmo diretório onde encontramos o arquivo STS.exe
, que em sua forma padrão se parece com o seguinte:
-startup plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.550.v20170928-1359 -product org.springsource.sts.ide --launcher.defaultAction openFile -vmargs -Dosgi.requiredJavaVersion=1.8 --add-modules=ALL-SYSTEM -Xms40m -Dosgi.module.lock.timeout=10 -Xverify:none -Dorg.eclipse.swt.browser.IEVersion=10001 -Xmx1200m
Com isso, é possível que o caminho da JRE esteja definido de forma errada no arquivo, especificando somente a pasta home do Java ao invés de corretamente especificar o executável do Java javaw.exe
:
... -vm C:\Users\bgasparotto\Documents\Java\jdk1.8.0_121\bin -vmargs ...
Para corrigir isto, adicione a parte que falta conforme descrito acima:
... -vm C:\Users\bgasparotto\Documents\Java\jdk1.8.0_121\bin\javaw.exe -vmargs ...
Agora tudo deve funcionar normalmente.
Por favor, me informe se por algum motivo as soluções acima não funcionaram com você, para que eu possa te ajudar =]
Referências
- bgasparotto – Alterar o JRE do Eclipse
- Stack Overflow – Failed to load JNI shared library