Como mudar o Java JDK no macOS: 5 erros de iniciantes e suas soluções

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Como mudar a versão do Java (JDK) no macOS sem dor de cabeça: guia para quem está cansado de erros

\n\n

Você já tentou executar um projeto antigo em Java e ele teimava em falhar com erro? Ou, ao contrário, um novo IDE exige JDK 17, mas você tem o JDK 8? Se você trabalha no macOS, certamente já enfrentou o fato de que alternar a versão do Java é uma verdadeira aventura. Parece que o comando java -version vive a própria vida e não obedece aos seus desejos.

\n\n

No Stack Overflow, a pergunta "How to set or change the default Java (JDK) version on macOS?" acumulou milhares de visualizações e centenas de comentários. As pessoas se confundem com os caminhos, esquecem o JAVA_HOME e acabam quebrando o sistema. Vamos entender de uma vez por todas: como gerenciar o JDK no Mac, quais erros esperam os iniciantes e como evitá-los.

\n\n

Este artigo não é uma documentação seca. Vamos percorrer o caminho do caos total até a compreensão clara. Vamos lá!

\n\n

Por que o macOS funciona de forma tão "estranha" com o Java?

\n\n

A primeira coisa a entender: o macOS é um sistema Unix e não gosta quando você coloca arquivos manualmente em pastas onde eles não deveriam estar. A Apple instala o JDK por padrão em /Library/Java/JavaVirtualMachines/, e utilitários do sistema como /usr/bin/java são apenas wrappers que olham para o seu JAVA_HOME.

\n\n

O erro mais comum é tentar renomear ou excluir a pasta do JDK. Não faça isso! Em vez disso, você precisa aprender a gerenciar links simbólicos e variáveis de ambiente.

\n\n

Passo 1: Descubra quais JDKs você já tem instalados

\n\n

Antes de mudar qualquer coisa, vamos ver o que você tem. Abra o Terminal e execute:

\n\n
/usr/libexec/java_home -V
\n\n

Você verá algo como:

\n\n
Matching Java Virtual Machines (3):\n    17.0.6 (x86_64) "Oracle Corporation" - "Java SE 17.0.6" /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home\n    11.0.18 (x86_64) "Oracle Corporation" - "Java SE 11.0.18" /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home\n    1.8.0_361 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_361.jdk/Contents/Home
\n\n

Esta é a lista completa de JDKs que o sistema conhece. Se você instalou o JDK via Homebrew ou manualmente, mas ele não aparece, significa que está na pasta errada ou não tem a estrutura correta.

\n\n

Erro nº 1: Achar que export JAVA_HOME é para sempre

\n\n

Iniciantes costumam digitar no terminal:

\n\n
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home\njava -version  # mostra 17
\n\n

E ficam felizes. Mas basta fechar o terminal e abrir um novo — tudo volta à versão antiga. Por quê? Porque o export funciona apenas na sessão atual.

\n\n

Solução: Adicione esta linha ao seu arquivo de configuração do shell. Se você usa zsh (shell padrão no macOS desde Catalina e versões posteriores), edite o arquivo ~/.zshrc:

\n\n
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 17)' >> ~/.zshrc\nsource ~/.zshrc
\n\n

Se você usa bash (versões antigas do macOS), o arquivo se chama ~/.bash_profile.

\n\n

Erro nº 2: Confusão entre java e javac

\n\n

Você alterou o JAVA_HOME, o comando java -version mostra a versão desejada, mas javac -version teimosamente mostra a antiga. Familiar?

\n\n

Isso acontece porque java e javac são arquivos executáveis diferentes. Às vezes, eles podem ser de JDKs diferentes. Verifique onde eles estão:

\n\n
which java   # /usr/bin/java\nwhich javac  # /usr/bin/javac
\n\n

Se os caminhos forem iguais — o problema é que /usr/bin/java é um link simbólico que pode apontar para uma versão antiga. Atualize-o usando o utilitário java_home:

\n\

Blogs

Book Recommendations