3
respostas

Error: A JNI error has occurred, please check your installation and try again

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/springframework/boot/loader/JarLauncher has been compiled by a 
more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file version
s up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

Estou fazendo um novo projeto, porém ao rodar o java -jar target/apiRest-0.0.1-SNAPSHOT.jar aparece o erro acima, sei que é sobre a questão da versão do Java Rutime, gostaria de ajuda para resolver.

3 respostas

Olá, Thiago! Tudo joia?

Esse erro ocorre quando tentamos compila o código numa versão superior à versão do ambiente em que está tentando executar.

Por exemplo, suponha que você fez uma aplicação Web Java na sua máquina com Java 8, mas quando foi publicar no servidor de aplicação, o mesmo tinha o Java 7 instalado. Neste caso este erro ocorreria.

Caso esteja executando na sua máquina mesmo, possivelmente você tem a JRE numa versão e JDK em outra superior. Minha sugestão é desinstalar o Java completamente e reinstalar o JDK. Instalando o JDK ele instala automaticamente o JRE, e tudo fica na mesma versão. Link para Download do JDK na versão 17:

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Armano, deu certo, porém agora está dando outro erro, algo no Tomcat:

2023-12-08T22:43:45.004-03:00  INFO 18232 --- [           main] c.api.apiRest.ApiRestApplication         : Starting ApiRestApplication v0.0.1-SNAPSHOT using Java 17.0.9 with PID 18232 (C:\Users\thiag\Documents\curso\apiRest\target\apiRest-0.0.1-SNAPSHOT.jar started by thiag in 
C:\Users\thiag\Documents\curso\apiRest)
2023-12-08T22:43:45.010-03:00  INFO 18232 --- [           main] c.api.apiRest.ApiRestApplication         : The following 1 profile is active: "prod"
2023-12-08T22:43:46.924-03:00  INFO 18232 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2023-12-08T22:43:47.070-03:00  INFO 18232 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 129 ms. Found 4 JPA repository interfaces.
2023-12-08T22:43:48.496-03:00  INFO 18232 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2023-12-08T22:43:48.521-03:00  INFO 18232 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2023-12-08T22:43:48.521-03:00  INFO 18232 --- [           main] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.12]
2023-12-08T22:43:48.718-03:00  INFO 18232 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2023-12-08T22:43:48.721-03:00  INFO 18232 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3598 ms
2023-12-08T22:43:48.861-03:00 ERROR 18232 --- [           main] o.s.b.web.embedded.tomcat.TomcatStarter  : Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'securityFilter': Unsati
sfied dependency expressed through field 'repository': Error creating bean with name 'usuarioRepository' defined in cabeleireiro.api.apiRest.domain.usuario.UsuarioRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguratio
n: Cannot resolve reference to bean 'jpaSharedEM_entityManagerFactory' while setting bean property 'entityManager'
2023-12-08T22:43:48.965-03:00  INFO 18232 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2023-12-08T22:43:48.992-03:00  WARN 18232 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server
2023-12-08T22:43:49.022-03:00  INFO 18232 --- [           main] .s.b.a.l.ConditionEvaluationReportLogger : 

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2023-12-08T22:43:49.066-03:00 ERROR 18232 --- [           main] o.s.boot.SpringApplication               : Application run failed

Oi Thiago! Peço desculpas pela demora em responder.

O erro que está sendo relatado é uma UnsatisfiedDependencyException relacionada à criação do bean chamado 'securityFilter'. O erro específico está indicando que há uma dependência insatisfeita no campo 'repository' desse bean.

Além disso, há um problema na criação do bean 'usuarioRepository'. O erro está relacionado ao fato de que não é possível resolver a referência para o bean 'jpaSharedEM_entityManagerFactory' ao configurar a propriedade 'entityManager' desse bean.

Aqui está uma parte do trecho de erro relevante:

Error creating bean with name 'securityFilter': Unsatisfied dependency expressed through field 'repository': Error creating bean with name 'usuarioRepository' defined in cabeleireiro.api.apiRest.domain.usuario.UsuarioRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Cannot resolve reference to bean 'jpaSharedEM_entityManagerFactory' while setting bean property 'entityManager'

O problema pode estar relacionado à configuração do Spring Data JPA e à configuração do EntityManagerFactory.

Algumas sugestões para solucionar o problema:

  1. Verifique se a configuração do EntityManagerFactory está correta e se o bean 'jpaSharedEM_entityManagerFactory' está sendo criado corretamente.

  2. Certifique-se de que a anotação @EnableJpaRepositories está configurada corretamente, apontando para o pacote correto onde estão os repositórios JPA.

  3. Confirme se as dependências necessárias estão no classpath, especialmente as relacionadas ao Spring Data JPA.

  4. Revise a configuração de segurança (bean 'securityFilter') para garantir que todas as dependências estejam configuradas corretamente.

Essas são diretrizes gerais e a solução exata pode depender da estrutura específica do seu projeto e da configuração do Spring.

Abraços,