Configuração de Ambiente e Gerenciamento de Versões

Trabalhando com múltiplas versões do Java

SDKMAN, jEnv e estratégias para alternar entre versões Java por projeto.

Intermediário 40 min 18 pontos Leitura 0%

Nesta aula você vai

  • Instalar e usar SDKMAN ou alternativa
  • Alternar versão global e por diretório
  • Evitar quebra de projetos legados

Trabalhando com múltiplas versões do Java

Objetivos

Nesta aula você vai:

  • Entender por que múltiplas versões coexistem
  • Usar SDKMAN para instalar e alternar JDKs
  • Aplicar boas práticas por projeto

Por que várias versões?

  • Projeto legado em Java 8 ou 11
  • Projeto novo em 21
  • Ferramentas (Android, Spark) com requisitos específicos

Instalar um único JDK "global" quebra um dos lados — o ideal é gerenciar versões.

SDKMAN (Linux/macOS/WSL)

sdk list java
sdk install java 21.0.2-tem
sdk install java 17.0.10-tem
sdk use java 21.0.2-tem      # sessão atual
sdk default java 21.0.2-tem  # padrão novo

Arquivo .sdkmanrc (por projeto)

Na raiz do projeto:

java=17.0.10-tem

Ao entrar na pasta com SDKMAN habilitado, a versão troca automaticamente.

Windows

  • jEnv (com WSL) ou múltiplas instalações + script que altera JAVA_HOME
  • IDEs permitem Project SDK por projeto independente do sistema

Riscos

  • Compilar com Java 21 e rodar em servidor com Java 11 — erros de bytecode ou APIs
  • CI diferente do laptop — padronize com .toolchains (Maven) ou gradle.properties

Boas práticas

  1. Documente versão no README do projeto
  2. Use Maven Toolchains ou Gradle JVM toolchain
  3. Não altere JAVA_HOME global sem avisar o time
  4. Em Docker, a versão fica explícita na imagem base

Resumo

  • SDKMAN facilita múltiplas versões em Unix/WSL
  • Prefira configuração por projeto quando possível
  • Alinhe laptop, CI e produção na mesma versão LTS do projeto