Solucionado (ver solução)
Solucionado
(ver solução)
9
respostas

Erro executando o método main

Boa tarde,

Estou utilizando o Ubuntu, com java na versão 17 e Maven 3.

Ao executar a função main recebo o seguinte erro:

Error: Could not find or load main class med.voll.api.ApiApplication Caused by: java.lang.ClassNotFoundException: med.voll.api.ApiApplication

Entendi o que ele é, mas não consegui achar alguma forma de resolve-lo. Tentei mudar o JDK, reconstruir o projeto, desligar e religar o pc.

Alguma sugestão?

9 respostas

Oi Luiz!

Tenta fazer um build no projeto, clicando no ícone do "martelo verde":

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Clica com o botão direito no projeto e vai em Open Module Settings e na janela que abrir, no menu lateral a esquerda, clica em Project e veja se está selecionado certinho o Java 17:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Boa tarde, tudo bem?

Obrigado pela ajuda desde já.

Realizei o processo, mas sigo tomando o mesmo erro. Fiz o build e verifiquei a versão.

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

Vai na aba do maven, no canto superior direito do IntelliJ, expande a opção lifecycle, clica com o botão direito em Package e escolhe a opção Run Maven Build:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Fiz o maven build e recebi essa mensagem de erro. Está dando erro nos testes do build? Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Muito estranho. Se não for erro no projeto é algo com o seu Java instalado.

Baixa o projeto desse link: https://github.com/alura-cursos/2700-spring-boot/archive/refs/heads/aula_1.zip

Abra ele no IntelliJ e tente executar para ver se também ocorre o erro

Fiz o download do projeto do link e tentei fazer o build maven.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Como você comentou sobre a minha versão do java, fiz uma nova instalação da versão 17. Fiz o download do arquivo jdk-17_linux-x64_bin.tar.gz no site https://www.oracle.com/br/java/technologies/downloads/#java17.

Como utilizo vairas versões do java preparei o meu arquivo .bashrc para funcionar dessa forma. Segue um exemplo do mesmo. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Antes de executar algum programa eu digito no terminal "j17" e "m3" e assim ele passa a utilizar a versão especificada para cada programa. Sempre deu certo em outros projetos, mesmo assim pensei que isso poderia ser a causa do problema. Tentei executar sem rodar as funções no terminal e utilizar apenas o jdk especificado na IDE, mas deu o mesmo erro da primeira imagem.

Não sei mais o que poderia ser...

Você está utilizando algum proxy? Agora o erro foi problema ao baixar as dependências e no log apareceu que tentou baixar do MAPS (tools.cloud.maps.com.br/nexus) e não conseguiu.

Conversei com alguns colegas e apesar de estar utilizando um proxy ele não deveria afetar isso, pois não afeta outros projetos. Fiz mais alguns testes e aparentemente o erro esta ocorrendo na própria JVM, o que seria anterior a importação das bibliotecas. O erro que recebo ao rodar "mvn clean install" é :

Unrecognized VM option 'PermSize=512M'

Error: Could not create the Java Virtual Machine.

Error: A fatal exception has occurred. Program will exit.

Dei uma pesquisada, mas não consegui entender como nem a razão disso acontecer. Queria saber se esse raciocínio está certo ou se pulei alguma etapa.

Outra observação é que ao tentar rodar o mesmo projeto com a versão 11 do java ele ao menos tenta fazer o build e quebra, com a versão 17 da esse erro na hora.

solução!

Boa tarde, tudo bem?

Consegui resolver, mas não sei direito como...

Vou falar todos os passos que fiz até dar certo:

  1. Instalei a versão mais recente do maven
  2. Criei novos projetos, com a versão 11 e 8 do java(*No entanto o pom sempre mantinha a versão do java 17 graças a outras dependências)
  3. Criei uma nova pasta para descompactar os projetos (java - 17, 11 e 8)
  4. Limpei a minha pasta repository
  5. Rodei o comando "sudo netstat -tulpn" para ver quais portas estavam sendo utilizadas. Percebi que tinha alguma coisa utilizando a porta 8080 e dei um kill no processo.

As versões com java 8 e 11 não conseguem nem buildar, mas o curioso é que versão com java 17 também não consegue. A diferença é que ao executar o método main do arquivo ApiApplication.java ele obteve sucesso. No começo desse tópico esse era meu problema inicial já que o projeto não conseguia localizar essa classe. Apesar de não saber com certeza, diria que a solução foi trocar de pasta e liberar a porta 8080

Obrigado.