Preparando um Ambiente Java para Projetos Reais

Diagnóstico e solução de problemas comuns

Erros frequentes de instalação, PATH, versão e build com métodos sistemáticos de troubleshooting.

Intermediário 40 min 18 pontos Leitura 0%

Nesta aula você vai

  • Identificar erros típicos de ambiente Java
  • Aplicar método de diagnóstico em camadas
  • Resolver conflitos de versão e PATH

Diagnóstico e solução de problemas comuns

Objetivos

Nesta aula você vai:

  • Reconhecer mensagens de erro frequentes
  • Diagnosticar em ordem: JVM → PATH → JAVA_HOME → ferramenta → projeto
  • Aplicar correções sem "tentativa e erro" aleatória

Método em camadas

  1. JVM no terminaljava -version funciona?
  2. Compiladorjavac -version existe?
  3. JAVA_HOME — aponta para JDK (não JRE solto)?
  4. Ferramentamvn -version mostra mesmo Java?
  5. Projeto — versão no pom.xml / build.gradle compatível?

Problemas e soluções

"java não é reconhecido" / "command not found"

  • PATH não inclui bin do JDK
  • Terminal aberto antes de instalar — feche e reabra
  • Windows: where java vazio → reinstalar ou editar PATH

Versão diferente entre terminal e IDE

  • IDE com JDK embutido — force Project SDK
  • Múltiplos java no PATH — remova entradas antigas

JAVA_HOME inválido

  • Apontou para bin em vez da raiz do JDK
  • Caminho com espaços sem aspas no script

UnsupportedClassVersionError

  • Compilou com Java mais novo que o da execução
  • Alinhe versão de compile e runtime; use toolchain

Maven não baixa dependências

  • Proxy corporativo — configure settings.xml
  • Firewall bloqueando repo.maven.apache.org
  • Cache corrompido — rm -rf ~/.m2/repository (último recurso)

Gradle Wrapper falha

  • Permissão: chmod +x gradlew
  • JDK ausente no CI — instale antes do ./gradlew

Ferramentas de diagnóstico

java -XshowSettings:properties -version
mvn -version
./gradlew -version
echo $JAVA_HOME

Resumo

  • Diagnostique de baixo para cima: java → javac → JAVA_HOME → Maven/Gradle
  • UnsupportedClassVersionError = mismatch de versão
  • IDE e terminal devem usar o mesmo JDK por projeto