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.
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) ougradle.properties
Boas práticas
- Documente versão no
READMEdo projeto - Use Maven Toolchains ou Gradle JVM toolchain
- Não altere
JAVA_HOMEglobal sem avisar o time - 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