- 1 1. O que você aprenderá neste artigo (Resumo rápido)
- 2 2. Comece aqui: Lista de comandos para verificação da versão do Java (Copiar & Colar)
- 2.1 2.1 Verificar a versão do Java usada em tempo de execução
- 2.2 2.2 Verificar a versão do ambiente de desenvolvimento Java (JDK)
- 2.3 2.3 A Diferença Entre java -version e javac -version (Confusão Comum de Iniciantes)
- 2.4 2.4 Verificar Usando uma Ferramenta do JDK (Opcional)
- 2.5 2.5 Ordem Recomendada para Verificar (Amigável para Iniciantes)
- 3 3. Como Ler java -version (Exemplo de Saída e Como Interpretá‑la)
- 4 4. Como Ler javac -version (Confirmar se o JDK Está Instalado)
- 5 5. Como Verificar a Versão do Java no Windows
- 5.1 5.1 Verificar Usando Prompt de Comando / PowerShell (Básico)
- 5.2 5.2 Um Comando-Chave Específico do Windows: where java
- 5.3 5.3 Por que uma versão antiga do Java é usada mesmo após a instalação
- 5.4 5.4 Como verificar o JAVA_HOME (Windows)
- 5.5 5.5 Checklist seguro para Windows
- 5.6 5.6 Verificar via GUI (Tela de Variáveis de Ambiente) pode esperar
- 6 6. Como verificar a versão do Java no macOS
- 7 7. Como Verificar a Versão do Java no Linux
- 8 8. Por que a Versão do Java Exibida Difere (Causas e Correções)
- 9 9. Uma Lista de Verificação para Ir Além de Apenas “Verificar”
- 10 10. FAQ (Perguntas Frequentes)
1. O que você aprenderá neste artigo (Resumo rápido)
Nesta página, organizaremos a maneira mais rápida de alcançar seu objetivo de “verificar a versão do Java a partir da linha de comando.”
Para compartilhar a conclusão primeiro, os comandos que você normalmente usará são estes dois:
- A versão do Java que realmente é executada →
java -version - A versão do JDK (compilador) para desenvolvimento →
javac -version
Entretanto, em ambientes reais, é muito comum encontrar que “a versão que você esperava não é a que aparece.”
Este artigo não apenas lista os comandos—ele também explica por que ocorre o descompasso e como corrigi‑lo.
1.1 O que você será capaz de fazer após a leitura
Ao final, você será capaz de fazer o seguinte:
- Verificar sua versão do Java imediatamente wp:list /wp:list
- Usar
java -versionejavac -versioncom confiança para o propósito correto
- Usar
- Entender como verificar no Windows / macOS / Linux wp:list /wp:list
- Verificar o Java levando em conta diferenças comuns específicas de cada SO
- Identificar qual Java está sendo usado mesmo quando múltiplas versões estão instaladas wp:list /wp:list
- Solucionar “Instalei, mas ainda aparece uma versão mais antiga” por conta própria
- Compreender as causas típicas e correções quando a versão exibida não é a esperada wp:list /wp:list
- Aprender o básico sobre PATH, JAVA_HOME e configurações de troca de versão
1.2 Público‑alvo (Iniciantes são bem‑vindos)
- Você precisa usar Java e quer saber qual Java está instalado no seu PC primeiro
- Foi informado que “Java 17 é obrigatório” ou “Apenas Java 8”, e você precisa verificar sua versão atual
- Executou um comando e obteve uma versão diferente da esperada, e está travado
javafunciona, masjavacnão, e você não entende completamente as diferenças entre JRE e JDK
1.3 Um ponto chave para saber desde o início (Muito importante)
A maior parte da confusão ao verificar a versão do Java se resume a este ponto:
- “Java instalado na máquina” não é o mesmo que “Java que realmente é executado.”
Quando existem múltiplas instalações de Java, o Java que é executado é aquele encontrado na localização de maior prioridade em tempo de execução.
É por isso que o resultado de java -version pode não ser “a versão mais recente que você acabou de instalar.”
Com esse descompasso em mente, este artigo explica, em ordem:
- O que executar primeiro (o caminho mais curto)
- O que verificar a seguir para identificar a causa (etapas de investigação)
- Como corrigir (etapas de resolução)
passo a passo.
2. Comece aqui: Lista de comandos para verificação da versão do Java (Copiar & Colar)
Você não precisa de muitos comandos para verificar sua versão do Java.
Se você lembrar apenas desta seção, resolverá cerca de 90 % dos casos.
2.1 Verificar a versão do Java usada em tempo de execução
java -version
Este comando mostra a versão do Java que realmente está sendo executado neste PC agora.
É a forma mais básica — e mais importante — de confirmar seu ambiente Java.
O que a saída normalmente inclui (exemplo)
- O número da versão do Java (ex.: 17 / 21 / 1.8, etc.)
- A implementação (OpenJDK / Oracle JDK, etc.)
- Detalhes do ambiente de tempo de execução, como 64‑bit / Server VM
O ponto chave é o seguinte: ele aponta para o java que tem a maior prioridade no seu PATH.
Não se trata de “onde você instalou o Java”, mas de “qual Java está sendo invocado.” Tenha isso em mente.
2.2 Verificar a versão do ambiente de desenvolvimento Java (JDK)
javac -version
Este comando mostra a versão do compilador Java (javac).
O que isso indica
- Se o JDK está instalado corretamente
- Se você pode usar o Java não apenas para executar aplicativos, mas também para desenvolvimento/compilações
Se este comando exibir algo como:
- “command not found”
- “
javacnão é reconhecido como um comando interno ou externo”
então é muito provável que o JDK não esteja instalado ou que seu PATH não esteja configurado corretamente.
2.3 A Diferença Entre java -version e javac -version (Confusão Comum de Iniciantes)
| Command | What It Checks | Main Use |
|---|---|---|
java -version | Java at runtime | Running apps / verifying runtime behavior |
javac -version | Compiler (JDK) | Development / builds |
Um equívoco comum é:
- Se
java -versionfunciona, você pode desenvolver código Java. Isso não está correto. - Executar apenas →
java - Desenvolver (compilar) →
javac
Esses dois têm papéis diferentes, portanto verificar ambos é a abordagem padrão.
2.4 Verificar Usando uma Ferramenta do JDK (Opcional)
Dependendo do seu ambiente, você também pode verificar a versão do JDK usando o comando a seguir:
jshell --version
jshellé uma ferramenta incluída por padrão no JDK 9 e posteriores- Se isso funcionar, é um bom sinal de que o JDK está instalado
Dito isso, desde que você entenda java -version e javac -version, isso geralmente é suficiente.
2.5 Ordem Recomendada para Verificar (Amigável para Iniciantes)
Se você é novo nisso, verificar na ordem a seguir reduz a confusão:
java -version→ Verificar a versão do Java usada em tempo de execuçãojavac -version→ Confirmar que o JDK de desenvolvimento está disponível- Se os resultados não forem o que você esperava, veja a próxima seção para verificações específicas do SO
3. Como Ler java -version (Exemplo de Saída e Como Interpretá‑la)
Nesta seção, vamos analisar o que aparece quando você executa java -version, passo a passo para que iniciantes não se percam. Isso serve para evitar a situação comum de “Não sei o que devo observar”.
3.1 O Papel Básico de java -version
java -version
O que este comando informa é a versão do Java que será executada agora. Ele não mostra uma lista de versões do Java instaladas — mostra a que está realmente sendo usada.
É por isso que esse resultado se torna a base para coisas como:
- Se você atende à versão do Java exigida por um aplicativo ou ferramenta
- Se os ambientes de produção/teste estão executando a versão do Java pretendida
- Se uma versão mais antiga do Java está sendo usada inesperadamente
3.2 Exemplo Típico de Saída (Ilustração)
A redação exata varia conforme o ambiente, mas geralmente você verá algo como isto:
java version "17.0.8"
Java(TM) SE Runtime Environment (build 17.0.8+9)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.8+9, mixed mode)
Dentro dessa saída, a parte mais importante é a primeira linha.
3.3 O Que Verificar Primeiro (Isso É Tudo Que Você Precisa)
① Número da Versão
java version "17.0.8"
17→ série Java 171.8.x→ Java 821.x→ Java 21
Em muitas empresas, versões LTS (Long‑Term Support) como 8 / 11 / 17 / 21 são comumente usadas. Primeiro, confirme se é a versão principal que seu projeto requer.
② Distribuição Java (Oracle / OpenJDK, etc.)
Java(TM) SE Runtime Environment
ou
OpenJDK Runtime Environment
Na maioria dos casos, você não precisa ser excessivamente rigoroso quanto a isso para uma verificação básica. Contudo, algumas empresas/projetos podem exigir explicitamente “Oracle JDK” ou “OpenJDK”, então pode ser relevante dependendo do seu ambiente.
③ “64‑Bit” / “Server VM”
64-Bit Server VM
- Na maioria dos ambientes modernos, 64‑Bit é normal
- A menos que você tenha um motivo especial, uma verificação rápida aqui é suficiente
3.4 Por Que Você Obtém “Uma Versão Java Diferente do Esperado”
Este é o ponto que mais confunde os iniciantes.
Um Equívoco Comum
- “Instalei o Java mais recente.”
- “Então
java -versiondeveria mostrar a versão mais recente.”
Na realidade, isso não é garantido.
O motivo é simples:
java -versionexecuta o primeirojavaque encontra com a maior prioridade no PATH
É por isso.
Em outras palavras, se:
- Um Java mais antigo permanece antes no PATH
- Várias instalações de JDK/JRE estão misturadas
então um Java diferente daquele que você instalou pode ser executado.
3.5 java -version Verifica o “Resultado”, Não a “Localização”
Como uma forma importante de pensar:
- ❌ Onde o Java está instalado
- ⭕ Qual Java está realmente sendo executado
É para isso que serve o java -version.
Primeiro, simplesmente decida se o resultado exibido está correto.
Se não estiver, use as seções a seguir para identificar a causa e corrigi‑la — esse é o fluxo de trabalho mais seguro.
4. Como Ler javac -version (Confirmar se o JDK Está Instalado)
Aqui explicaremos o papel de javac -version e como interpretá‑lo.
Entender esse comando resolve rapidamente um problema comum: “Java funciona, mas não consigo desenvolver/compilar.”
4.1 O Que É javac? (Para Iniciantes)
javac é a abreviação de Java Compiler (Compilador Java).
java→ executa um programa já compiladojavac→ compila código‑fonte (.java)
Portanto, as funções são:
- Se você só quer executar Java →
javabasta - Se você quer desenvolver/compilar Java →
javacé necessário
Essa é a divisão básica de responsabilidades.
4.2 O Que Você Aprende com javac -version
javac -version
Esse comando mostra a versão do compilador Java que está sendo usada.
Saída de Exemplo (Ilustração)
javac 17.0.8
O número exibido pode ser interpretado como:
- A versão do JDK propriamente dita
- A versão base do Java usada para compilação na prática
Esse entendimento é suficiente na maioria das situações reais.
4.3 Observações Importantes Quando Não Coincide com java -version
Esse tipo de divergência acontece com frequência no dia a dia:
java -version→ 17javac -version→ 11
Nesse caso, você tem uma configuração incompatível:
- Runtime: Java 17
- Desenvolvimento: Java 11
Problemas Que Essa Incompatibilidade Pode Causar
- Você não consegue usar recursos de linguagem mais recentes
- A compilação ocorre, mas surgem erros em tempo de execução
- O comportamento difere entre o CI e o ambiente local
Portanto, como política básica, é mais seguro alinhar ambas as versões.
4.4 Quando javac Não é Encontrado (Erros Comuns)
Você pode ver mensagens como as seguintes:
- “
javacnão é reconhecido como um comando interno ou externo” - “command not found: javac”
Nesses casos, as causas prováveis são quase sempre uma das duas abaixo:
Causa 1: O JDK Não Está Instalado
- Apenas o JRE (runtime) está instalado
- Ferramentas de desenvolvimento não foram incluídas
Causa 2: O PATH Não Está Configurado
- O JDK está instalado, mas o diretório
binnão está incluído no PATH
Você pode distinguir de forma confiável entre essas situações nas seções de confirmação específicas para cada SO.
4.5 javac -version É um Indicador de “Posso Desenvolver?”
Se você for iniciante, lembrar‑se disso evitará confusões:
java -version→ Posso executar Java?javac -version→ Posso desenvolver/compilar Java?
Se ambos os comandos exibirem as versões esperadas,
seu ambiente Java está em um estado onde a configuração mínima necessária está completa.
5. Como Verificar a Versão do Java no Windows
Esta seção explica como verificar a versão do Java no Windows, incluindo pontos que costumam causar problemas no uso real.
Como o Windows é um SO onde várias instalações do Java costumam coexistir, a ordem das verificações é especialmente importante.
5.1 Verificar Usando Prompt de Comando / PowerShell (Básico)
Primeiro, comece pelo método mais simples.
- Abra o Prompt de Comando ou o PowerShell
- Execute o comando a seguir
java -version
Se você pretende desenvolver com Java, verifique também este:
javac -version
Neste ponto:
- Se ambas as versões estiverem como esperado → Sem problema
- Se a versão não for a esperada → Identifique a causa nos passos seguintes
É assim que você deve avaliar o resultado.
5.2 Um Comando-Chave Específico do Windows: where java
No Windows, é extremamente importante identificar qual java.exe está realmente sendo usado.
where java
Saída de Exemplo (Ilustração)
C:\Program Files\Java\jdk-17\bin\java.exe
C:\Program Files\Common Files\Oracle\Java\javapath\java.exe
Se várias linhas forem mostradas, a que aparece no topo tem a maior prioridade e é a que realmente será executada.
5.3 Por que uma versão antiga do Java é usada mesmo após a instalação
Causas comuns no Windows incluem:
- Uma instalação mais antiga do Java ainda está presente
javapathaparece antes no PATH- JAVA_HOME e PATH não correspondem
Em particular, se o diretório a seguir estiver incluído no PATH:
C:\Program Files\Common Files\Oracle\Java\javapath
geralmente faz com que uma versão não intencional do Java seja invocada.

5.4 Como verificar o JAVA_HOME (Windows)
Em seguida, verifique JAVA_HOME.
echo %JAVA_HOME%
- Se nada for exibido → JAVA_HOME não está definido
- Se um caminho inesperado for exibido → Pode estar apontando para uma versão antiga do Java
Exemplo de uma configuração correta
C:\Program Files\Java\jdk-17
Observe que deve apontar para o diretório raiz do JDK, não para o diretório bin.
5.5 Checklist seguro para Windows
Para iniciantes, verificar nesta ordem ajuda a evitar confusão:
java -versionjavac -versionwhere javaecho %JAVA_HOME%
Se todas as quatro verificações estiverem corretas,
você pode concluir que seu ambiente Java no Windows está configurado corretamente.
5.6 Verificar via GUI (Tela de Variáveis de Ambiente) pode esperar
O Windows também fornece uma tela GUI para visualizar e editar variáveis de ambiente, mas:
- Qual Java está sendo usado
- Por que há um descompasso
são avaliados com muito mais precisão usando a saída de comandos.
Use a GUI quando precisar corrigir as configurações,
mas sempre verifique com comandos — essa é a abordagem prática.
6. Como verificar a versão do Java no macOS
Esta seção explica como verificar a versão do Java no macOS.
Ao contrário do Windows, o macOS possui um mecanismo de nível de sistema para gerenciar JDKs, portanto conhecer os comandos dedicados ajuda a evitar confusão.
6.1 Verificar os comandos básicos no Terminal
Primeiro, comece com os mesmos comandos básicos usados em todos os lugares.
- Abra o Terminal
- Execute o comando a seguir
java -version
Se você planeja desenvolver com Java, também verifique:
javac -version
Se esses dois resultados estiverem como esperado,
o ambiente Java realmente usado no macOS está ok.
6.2 Observação: macOS gerencia automaticamente o JAVA_HOME
No macOS, é comum não definir JAVA_HOME de forma fixa, mas sim obtê-lo dinamicamente usando um comando do sistema.
O comando representativo é:
/usr/libexec/java_home
Exemplo de saída (Ilustração)
/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
Este caminho é o diretório home do JDK padrão atual.
6.3 Listar JDKs instalados
Se vários JDKs estiverem instalados, o comando a seguir é extremamente útil:
/usr/libexec/java_home -V
Executar este comando exibe:
- Versões de JDK instaladas
- Fabricantes (Oracle / baseados em OpenJDK, etc.)
- Arquiteturas suportadas
No macOS, esta é a maneira mais segura de confirmar primeiro quais JDKs estão realmente instalados.
6.4 Quando java -version e java_home não correspondem
Você pode encontrar uma situação como esta:
/usr/libexec/java_home→ Java 17java -version→ Java 11
Nesses casos, as causas prováveis são:
JAVA_HOMEestá fixado em arquivos de configuração do shell (.zshrc/.bashrc)- Um Java diferente aparece antes no PATH
- Um Java instalado via Homebrew está tendo prioridade
No macOS, as configurações de nível de usuário têm precedência, portanto os arquivos de configuração do shell têm forte influência.
6.5 Checklist seguro para macOS
No macOS, verificar nesta ordem mantém as coisas organizadas:
java -versionjavac -version/usr/libexec/java_home/usr/libexec/java_home -V
Com essas quatro verificações, você pode entender com precisão:
- O Java atualmente em uso
- A lista de versões Java instaladas
- O JDK padrão
sem ambiguidade.
6.6 Pense em termos de “troca” no macOS
No macOS, é comum que:
- Projetos diferentes exigem versões diferentes do Java
- Você troque entre vários JDKs
Portanto:
- Não presuma que há apenas um Java
- Sempre confirme qual Java está sendo usado atualmente
Manter essa mentalidade facilita muito evitar problemas.
7. Como Verificar a Versão do Java no Linux
Esta seção explica como verificar a versão do Java em ambientes Linux, especialmente para uso em servidores.
Embora os métodos de gerenciamento variem conforme a distribuição, os conceitos principais são os mesmos.
7.1 Comece com os Comandos Básicos
No Linux também, comece com os comandos mais comuns:
java -version
Se for necessário desenvolvimento ou compilações, verifique também:
javac -version
Com esses dois comandos, você pode determinar se:
- O Java usado em tempo de execução
- O JDK usado para compilação
correspondem às suas expectativas.
7.2 Use which java para Encontrar o Binário Real
No Linux, é importante saber qual executável está realmente sendo invocado.
which java
Saída de Exemplo
/usr/bin/java
Esse caminho é o binário real do Java usado por java -version.
Se precisar de mais detalhes, execute:
ls -l $(which java)
Isso permite rastrear o link simbólico até seu alvo real.
7.3 Gerenciando Múltiplas Versões do Java no Debian / Ubuntu (update-alternatives)
Em servidores, é muito comum ter várias versões do Java instaladas.
Em sistemas baseados em Debian/Ubuntu, isso costuma ser gerenciado com update-alternatives.
Listar Alternativas do Java
update-alternatives --list java
Verificar a Seleção Atual
update-alternatives --display java
O caminho exibido aqui é o Java selecionado a nível de sistema.
7.4 Quando java -version e as alternativas Não Correspondem
Ocasionalmente, você pode ver um descompasso como:
update-alternatives→ Java 17java -version→ Java 11
Possíveis causas incluem:
- Um Java diferente aparece no PATH do usuário
- Um Java instalado manualmente existe em
/usr/local/bin, etc. - O PATH difere entre a execução normal e o
sudo
No Linux, tanto:
- Configurações a nível de sistema
- Ambiente a nível de usuário
podem influenciar qual Java é executado.
7.5 Checklist Seguro para Linux
No Linux, verificar nesta ordem mantém as coisas claras:
java -versionjavac -versionwhich javaupdate-alternatives --display java(se aplicável)
Isso fornece uma visão completa de:
- O Java que está em execução
- O arquivo executável real
- A configuração do sistema
de forma resumida.
8. Por que a Versão do Java Exibida Difere (Causas e Correções)
A maioria dos problemas de versão do Java não é causada pelos próprios comandos, mas sim pela configuração do ambiente.
Aqui resumimos as causas que se aplicam a todos os sistemas operacionais.
8.1 Causa 1: A Prioridade do PATH Não É a Esperada
Esta é a causa mais comum.
- Um diretório
binde Java antigo aparece antes no PATH - Você instalou um Java novo, mas não atualizou o PATH
Como Corrigir
- Identifique qual Java está realmente sendo executado
- Remova entradas desnecessárias do PATH ou ajuste a ordem
Apenas “adicionar” um novo caminho geralmente não basta.
8.2 Causa 2: JAVA_HOME Não Corresponde ao Java em Execução
- JAVA_HOME → Java 11
- Java em execução → Java 17
Essa situação também é muito comum.
Como Corrigir
- Defina o JAVA_HOME para o diretório raiz do JDK
- Garanta que o PATH use
$JAVA_HOME/bin
Pense no JAVA_HOME como uma “referência”, e no PATH como a “prioridade de execução”.
8.3 Causa 3: java e javac Usam Versões Diferentes
Este é um caso clássico de mistura de versões de JRE e JDK.
- O runtime funciona
- O desenvolvimento ou as compilações falham
Como Corrigir
- Escolha um JDK como padrão
- Alinhe
javaejavacsob o mesmo JDK
8.4 Causa 4: IDE ou Ferramentas de Build Usam um JDK Diferente
- Tudo parece correto no terminal
- Erros ocorrem na IDE ou no CI
Nesses casos, a causa costuma ser configurações de JDK específicas da IDE.
Como Corrigir
- Verifique explicitamente o JDK usado nas configurações da IDE
- Não confie apenas na “detecção automática”
9. Uma Lista de Verificação para Ir Além de Apenas “Verificar”
Finalmente, vamos organizar o que você deve fazer após verificar sua versão do Java.
9.1 Se Seu Objetivo É Apenas Executar Java
- O
java -versionatende aos requisitos? - O aplicativo inicia corretamente?
9.2 Se Seu Objetivo É Desenvolvimento ou Compilações
- O
javac -versionatende aos requisitos? - O
javae ojavacmostram a mesma versão? - JAVA_HOME e PATH estão alinhados?
9.3 Se Você Usa Múltiplas Versões do Java
- Sempre confirme qual Java está em uso no momento
- Entenda o gerenciamento específico do SO (macOS / Linux)
10. FAQ (Perguntas Frequentes)
10.1 Qual a Diferença Entre java -version e javac -version?
java -version verifica a versão do runtime Java,
enquanto javac -version verifica a versão do compilador de desenvolvimento (JDK).
Como eles servem a propósitos diferentes, verificar ambos é a prática padrão.
10.2 Por Que o javac Não Foi Encontrado?
- O JDK não está instalado
- O PATH não está configurado corretamente
Na maioria dos casos, é uma dessas duas razões.
10.3 Instalei o Java, mas uma Versão Antiga Ainda é Exibida
Isso geralmente significa que um Java diferente tem prioridade maior no PATH.
Verifique o binário real com where java (Windows) ou which java (macOS/Linux).
10.4 Posso Usar Múltiplas Versões do Java com Segurança?
Sim, você pode.
No entanto, é crucial sempre saber qual Java está em uso no momento.
10.5 Qual Versão do Java Devo Usar?
Se não houver nenhum requisito especial, escolher uma versão LTS (Long-Term Support) é a opção mais segura.
Se o seu projeto especifica uma versão, sempre priorize esse requisito.

