O que é o JDK e como escolher a distribuição (LTS vs não-LTS)
O JDK (Java Development Kit) é o kit de desenvolvimento do Java. Ele inclui, entre outros componentes, o compilador javac (transforma .java em .class) e o executador java (roda o bytecode). Para preparar o ambiente, você precisa instalar um JDK e garantir que o sistema operacional consiga encontrá-lo via variáveis de ambiente.
LTS (Long-Term Support) é uma versão com suporte por mais tempo, indicada para a maioria dos cenários (estudo com estabilidade, projetos corporativos, servidores). Não-LTS recebe novidades mais cedo, mas tem ciclo de suporte menor; é útil para experimentar recursos recentes.
- Recomendação prática: se você não tem um motivo específico para usar não-LTS, escolha uma versão LTS.
- Distribuição do JDK: existem várias (por exemplo, Eclipse Temurin/Adoptium, Oracle JDK, Amazon Corretto, Microsoft Build of OpenJDK). Em geral, para aprendizado e uso geral, qualquer distribuição OpenJDK confiável atende; o importante é manter consistência e saber onde ela foi instalada.
Instalação do JDK (passo a passo por sistema)
Windows
- Baixe o instalador do JDK escolhido (MSI/EXE) e execute.
- Anote o caminho de instalação (ex.:
C:\Program Files\Java\jdk-21). - Após instalar, abra um novo terminal (Prompt/PowerShell) para testar.
macOS
- Instale o JDK (via pacote
.pkgdo fornecedor ou via gerenciador como Homebrew, se você já usa). - Em instalações padrão, os JDKs ficam em
/Library/Java/JavaVirtualMachines/. - Abra um novo Terminal para testar.
Linux
- Instale via gerenciador de pacotes da sua distribuição (ex.:
apt,dnf,pacman) ou usando tarball do fornecedor. - Se usar pacotes do sistema, o Java costuma ser gerenciado por alternativas (ex.:
update-alternatives). - Abra um novo terminal para testar.
Verificando a instalação via terminal
Depois de instalar, valide se o sistema encontra os executáveis java e javac e se a versão corresponde ao JDK instalado.
java -versionjavac -versionO comando java -version imprime informações da JVM. O comando javac -version confirma que o compilador está disponível (isso diferencia JDK de apenas JRE em ambientes antigos).
Checando qual executável está sendo usado
Quando há múltiplos JDKs, é comum o terminal apontar para outro caminho. Use:
- Ouça o áudio com a tela desligada
- Ganhe Certificado após a conclusão
- + de 5000 cursos para você explorar!
Baixar o aplicativo
- Windows (PowerShell):
where javaewhere javac - macOS/Linux:
which javaewhich javac
Isso ajuda a identificar se o PATH está apontando para o JDK correto.
Configuração de variáveis de ambiente: JAVA_HOME e PATH
JAVA_HOME é uma variável que aponta para a pasta raiz do JDK. Muitas ferramentas (build tools, IDEs, scripts) usam JAVA_HOME para localizar o Java. Já o PATH é uma lista de pastas onde o sistema procura executáveis; ao incluir %JAVA_HOME%\bin (Windows) ou $JAVA_HOME/bin (Unix), você consegue rodar java e javac de qualquer diretório.
Windows: configurando JAVA_HOME e PATH
- Abra Configurações → Sistema → Sobre → Configurações avançadas do sistema (ou pesquise por “Variáveis de ambiente”).
- Clique em Variáveis de Ambiente.
- Em Variáveis do sistema, clique em Novo... e crie:
- Nome:
JAVA_HOME - Valor: caminho do JDK (ex.:
C:\Program Files\Java\jdk-21)
- Nome:
- Em Variáveis do sistema, selecione
Path→ Editar → Novo e adicione:%JAVA_HOME%\bin
- Abra um novo terminal e valide:
echo %JAVA_HOME%java -versionjavac -version
Dica: se houver entradas antigas no Path (ex.: C:\Program Files\Java\jdk-17\bin), a ordem importa. O Windows usa a primeira ocorrência encontrada.
macOS: configurando JAVA_HOME e PATH
No macOS, é comum definir JAVA_HOME no shell (zsh/bash). O comando /usr/libexec/java_home ajuda a apontar para um JDK instalado.
- Descubra o caminho do JDK:
/usr/libexec/java_home -V - Edite o arquivo de configuração do seu shell:
- zsh:
~/.zshrc - bash:
~/.bash_profileou~/.bashrc
- zsh:
- Adicione (ajuste conforme sua versão):
export JAVA_HOME=$(/usr/libexec/java_home -v 21) export PATH=$JAVA_HOME/bin:$PATH - Recarregue o shell:
source ~/.zshrc - Valide:
echo $JAVA_HOMEjava -versionjavac -version
Observação: se você não fixar a versão com -v, o sistema pode escolher automaticamente outra versão instalada.
Linux: configurando JAVA_HOME e PATH
No Linux, você pode configurar por usuário (no shell) ou globalmente (para todos os usuários). A forma mais simples é por usuário.
- Descubra onde o Java está instalado:
- Ver caminho do executável:
which java - Resolver symlinks:
readlink -f $(which java)
- Ver caminho do executável:
- O
JAVA_HOMEdeve apontar para a pasta raiz do JDK (acima debin). Exemplo: sejavaestá em/usr/lib/jvm/jdk-21/bin/java, entãoJAVA_HOMEé/usr/lib/jvm/jdk-21. - Edite o arquivo do seu shell:
- bash:
~/.bashrc - zsh:
~/.zshrc
- bash:
- Adicione:
export JAVA_HOME=/usr/lib/jvm/jdk-21 export PATH=$JAVA_HOME/bin:$PATH - Recarregue:
source ~/.bashrc - Valide:
echo $JAVA_HOMEjava -versionjavac -version
Alternativas (quando aplicável): em distribuições baseadas em Debian/Ubuntu, você pode gerenciar múltiplos JDKs com update-alternatives para selecionar o padrão do sistema.
Checklist de validação do ambiente
- 1. Java responde no terminal:
java -versionexecuta sem erro. - 2. Compilador disponível:
javac -versionexecuta sem erro. - 3. Versões coerentes:
java -versionejavac -versionapontam para a mesma versão principal (ex.: 21 e 21). - 4. Caminho correto no PATH:
where java(Windows) ouwhich java(macOS/Linux) aponta para o JDK esperado. - 5. JAVA_HOME definido:
echo %JAVA_HOME%(Windows) ouecho $JAVA_HOME(macOS/Linux) retorna a pasta raiz do JDK. - 6. PATH inclui bin do JAVA_HOME: confirme que
.../binestá no PATH e vem antes de instalações antigas.
Resolução de problemas comuns
Problema: “java não é reconhecido...” (Windows) / “command not found” (macOS/Linux)
- Causa provável:
PATHnão inclui o diretóriobindo JDK. - Como resolver: adicione
%JAVA_HOME%\bin(Windows) ou$JAVA_HOME/bin(macOS/Linux) ao PATH e abra um novo terminal.
Problema: versão errada aparece no terminal
- Causa provável: há múltiplos JDKs instalados e o PATH está priorizando outro.
- Como diagnosticar:
- Windows:
where javaewhere javac - macOS/Linux:
which javaewhich javac
- Windows:
- Como resolver: reordene o PATH para que o
bindo JDK desejado venha primeiro; remova entradas antigas se não forem necessárias.
Problema: java e javac apontam para versões diferentes
- Causa provável: PATH misturado (por exemplo,
javavem de um JRE/JDK ejavacde outro). - Como resolver: garanta que o PATH aponte para um único
JAVA_HOMEe que$JAVA_HOME/bin(ou%JAVA_HOME%\bin) seja a entrada efetiva usada.
Problema: múltiplos JDKs instalados e necessidade de alternar
- Windows: altere
JAVA_HOMEe ajuste o PATH (ou use scripts/atalhos para alternar). - macOS: use
/usr/libexec/java_home -Vpara listar e fixe a versão noJAVA_HOMEcom-v. - Linux: considere
update-alternatives(quando disponível) ou ajusteJAVA_HOMEno shell por projeto.
Problema: permissões ao instalar/rodar (Linux/macOS)
- Causa provável: instalação em diretório sem permissão, ou execução bloqueada por políticas do sistema.
- Como resolver: instale via gerenciador de pacotes (recomendado) ou ajuste permissões corretamente; evite colocar o JDK em pastas que exigem privilégios sem necessidade. Em macOS, se o sistema bloquear o instalador, verifique permissões em Segurança e Privacidade.
Teste prático: compilar e executar um programa Java no terminal
1) Criar o arquivo Hello.java
Crie uma pasta de testes (qualquer lugar) e dentro dela crie o arquivo Hello.java com o conteúdo abaixo:
public class Hello { public static void main(String[] args) { System.out.println("Ambiente Java OK!"); }}2) Compilar com javac
javac Hello.javaSe der certo, aparecerá um arquivo Hello.class na mesma pasta.
3) Executar com java
java HelloSaída esperada:
Ambiente Java OK!Erros comuns nesse teste
- “Could not find or load main class”: você pode estar em outra pasta; confirme que está no diretório onde está o
Hello.classe executejava Hello(sem.class). - Erro de compilação: confirme que o arquivo se chama
Hello.javae que a classe pública éHello(mesmo nome e mesma capitalização). - Caracteres estranhos/encoding: se copiou de algum lugar, reescreva o arquivo em um editor simples e salve como UTF-8.