TL; DR
Para leitores experientes:
- Encontre o caminho do Java; Se parece com isso:
C:\Program Files\Java\jdkxxxx\bin\
- No menu Iniciar, procure por "variável de ambiente" para abrir a caixa de diálogo de opções.
- Examinar
PATH . Remova os caminhos Java antigos.
- Adicione o novo caminho Java ao
PATH .
- Editar
JAVA_HOME .
- Feche e abra novamente o console / IDE.
Bem-vinda!
Você encontrou um dos problemas técnicos mais notórios enfrentados pelos iniciantes em Java: o 'xyz' is not recognized as an internal or external command... mensagem de erro.
Em poucas palavras, você não instalou o Java corretamente . A finalização da instalação do Java no Windows requer algumas etapas manuais. Você sempre deve executar estas etapas após instalar o Java, inclusive após atualizar o JDK.
Variáveis de ambiente e PATH
(Se você já entendeu isso, fique à vontade para pular as próximas três seções.)
Quando você executa javac HelloWorld.java, o cmd deve determinar onde javac.exeestá localizado. Isso é realizado com PATHuma variável de ambiente.
Uma variável de ambiente é um par de valor-chave especial (por exemplo windir=C:\WINDOWS). A maioria veio com o sistema operacional e alguns são necessários para o funcionamento adequado do sistema. Uma lista deles é passada para todos os programas (incluindo o cmd) quando é iniciado. No Windows , existem dois tipos : variáveis de ambiente do usuário e variáveis de ambiente do sistema .
Você pode ver suas variáveis de ambiente assim:
C:\>set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\craig\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
...
A variável mais importante é PATH. É uma lista de caminhos, separados por; . Quando um comando é inserido no cmd, cada diretório da lista será verificado em busca de um executável correspondente.
No meu computador, PATHé:
C:\>echo %PATH%
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPower
Shell\v1.0\;C:\ProgramData\Microsoft\Windows\Start Menu\Programs;C:\Users\craig\AppData\
Roaming\Microsoft\Windows\Start Menu\Programs;C:\msys64\usr\bin;C:\msys64\mingw64\bin;C:\
msys64\mingw32\bin;C:\Program Files\nodejs\;C:\Program Files (x86)\Yarn\bin\;C:\Users\
craig\AppData\Local\Yarn\bin;C:\Program Files\Java\jdk-10.0.2\bin;C:\ProgramFiles\Git\cmd;
C:\Program Files\Oracle\VirtualBox;C:\Program Files\7-Zip\;C:\Program Files\PuTTY\;C:\
Program Files\launch4j;C:\Program Files (x86)\NSIS\Bin;C:\Program Files (x86)\Common Files
\Adobe\AGL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program
Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\iCLS Client\;
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files
(x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\iCLS
Client\;C:\Users\craig\AppData\Local\Microsoft\WindowsApps
Quando você executa javac HelloWorld.java, o cmd, ao perceber que javacnão é um comando interno , pesquisa o sistema PATHseguido pelo usuárioPATH . Ele entra mecanicamente cada diretório na lista, e verifica se javac.com, javac.exe, javac.bat, etc. está presente. Quando encontra javac, executa. Quando não, ele imprime'javac' is not recognized as an internal or external command, operable program or batch file.
Você deve adicionar o diretório executável Java ao PATH .
JDK vs. JRE
(Se você já entendeu isso, sinta-se à vontade para pular esta seção.)
Ao baixar Java, você pode escolher entre:
- O Java Runtime Environment (JRE), que inclui as ferramentas necessárias para executar programas Java, mas não para compilar novos - ele contém,
javamas nãojavac .
- O Java Development Kit (JDK), que contém ambos
javae javac, juntamente com um host de outras ferramentas de desenvolvimento. O JDK é um superconjunto do JRE.
Você deve certificar-se de ter instalado o JDK . Se você instalou apenas o JRE, não poderá executar javacporque não possui uma instalação do compilador Java no disco rígido. Verifique sua lista de programas do Windows e verifique se o nome do pacote Java inclui as palavras "Kit de Desenvolvimento".
Não use set
(Se você não estava planejando fazer isso de qualquer maneira, fique à vontade para pular esta seção.)
Várias outras respostas recomendam a execução de algumas variações de:
C:\>:: DON'T DO THIS
C:\>set PATH=C:\Program Files\Java\jdk1.7.0_09\bin
Não faça isso. Existem vários problemas importantes com esse comando:
- Este comando apaga tudo o resto de
PATHe substitui-lo com o caminho Java. Após executar este comando, você poderá encontrar vários outros comandos que não estão funcionando.
- Seu caminho Java provavelmente não é
C:\Program Files\Java\jdk1.7.0_09\bin - você quase definitivamente possui uma versão mais recente do JDK, que teria um caminho diferente.
- O novo
PATH se aplica apenas à sessão atual do cmd. Você precisará digitar novamente o setcomando sempre que abrir o prompt de comando.
Os pontos 1 e 2 podem ser resolvidos com esta versão um pouco melhor:
C:\>:: DON'T DO THIS EITHER
C:\>set PATH=C:\Program Files\Java\<enter the correct Java folder here>\bin;%PATH%
Mas é apenas uma má ideia em geral.
Encontre o caminho do Java
O caminho certo começa com a localização de onde você instalou o Java. Isso depende de como você instalou o Java.
Instalador Exe
Você instalou o Java executando um programa de instalação. O instalador da Oracle coloca as versões do Java em C:\Program Files\Java\(ou C:\Program Files (x86)\Java\). Com o Explorador de Arquivos ou o Prompt de Comando, navegue para esse diretório.
Cada subpasta representa uma versão do Java. Se houver apenas um, você o encontrou. Caso contrário, escolha o que se parece com a versão mais recente. Verifique se o nome da pasta começa com jdk(ao contrário de jre). Digite o diretório
Em seguida, insira o bindiretório disso.
Agora você está no diretório correto. Copie o caminho. Se no File Explorer, clique na barra de endereço. Se no prompt de comando, copie o prompt.
O caminho Java resultante deve estar na forma de (sem aspas):
C:\Program Files\Java\jdkxxxx\bin\
Arquivo Zip
Você baixou um .zip contendo o JDK. Extraia-o para algum lugar aleatório onde não atrapalhe; C:\Java\é uma escolha aceitável.
Em seguida, localize a binpasta em algum lugar dentro dela.
Agora você está no diretório correto. Copie seu caminho. Este é o caminho do Java.
Lembre-se de nunca mover a pasta, pois isso invalidaria o caminho.
Abra a caixa de diálogo de configurações

Essa é a caixa de diálogo para editar PATH . Existem várias maneiras de acessar esse diálogo, dependendo da versão do Windows, das configurações da interface do usuário e de como está confusa a configuração do sistema.
Experimente alguns destes:
- Caixa de pesquisa do menu Iniciar / barra de tarefas »procure por" variável de ambiente "
- Win + R »
control sysdm.cpl,,3
- Win + R »
SystemPropertiesAdvanced.exe » Variáveis de ambiente
- File Explorer »digite na barra de endereço
Control Panel\System and Security\System » Configurações avançadas do sistema (extrema esquerda, na barra lateral) »Variáveis de ambiente
- Desktop »clique com o botão direito do mouse neste PC» Propriedades »Configurações avançadas do sistema» Variáveis de ambiente
- Menu Iniciar »clique com o botão direito do mouse em Computador» Propriedades »Configurações avançadas do sistema» Variáveis de ambiente
- Painel de controle (modo ícone) »Sistema» Configurações avançadas do sistema »Variáveis de ambiente
- Painel de controle (modo de categoria) »Sistema e segurança» Sistema »Configurações avançadas do sistema» Variáveis de ambiente
- Desktop »clique com o botão direito do mouse em Meu computador» Avançado »Variáveis de ambiente
- Painel de controle »Sistema» Avançado »Variáveis de ambiente
Qualquer uma dessas opções deve levá-lo à caixa de diálogo de configurações correta.
Se você estiver no Windows 10, a Microsoft o abençoou com uma nova interface de usuário sofisticada para editar PATH. Caso contrário, você verá PATHtoda a sua glória incrustada em ponto e vírgula, espremida em uma caixa de texto de linha única. Faça o seu melhor para fazer as edições necessárias sem interromper o seu sistema.
Limpar \ limpo PATH
Olhe para PATH. Você quase definitivamente tem duas PATHvariáveis (por causa das variáveis de ambiente do usuário vs. do sistema). Você precisa olhar para os dois.
Verifique outros caminhos Java e remova-os. Sua existência pode causar todo tipo de conflito. (Por exemplo, se você tiver JRE 8 e JDK 11 PATH, nessa ordem, javacchamará o compilador Java 11, que criará .classarquivos da versão 55 , mas javachamará a Java 8 JVM, que suporta apenas a versão 52 e você encontrará erros de versão não suportados e não poderá compilar e executar nenhum programa.) Contorne esses problemas, certificando-se de que você tenha apenas um caminho Java PATH. E enquanto você está nisso, você também pode desinstalar versões antigas do Java . E lembre-se de que você não precisa ter um JDK e um JRE.
Se você tiver C:\ProgramData\Oracle\Java\javapath, remova-o também . A Oracle pretendia resolver o problema dos caminhos Java quebrados após as atualizações, criando um link simbólico que sempre apontava para a instalação mais recente do Java. Infelizmente, muitas vezes acaba apontando para o local errado ou simplesmente não está funcionando . É melhor remover esta entrada e gerenciar manualmente o caminho Java.
Agora também é uma boa oportunidade para executar tarefas domésticas gerais PATH. Se você possui caminhos relacionados ao software que não estão mais instalados no seu PC, é possível removê-los. Você também pode embaralhar a ordem dos caminhos (se você se importa com coisas assim).
adicionar à PATH
Agora pegue o caminho Java que você encontrou há três etapas e coloque-o no sistema PATH.
Não deve importar para onde vai o novo caminho na lista; colocá-lo no final é uma ótima escolha.
Se você estiver usando a interface do usuário anterior ao Windows 10, verifique se colocou os pontos e vírgulas corretamente. Deve haver exatamente um separando todos os caminhos na lista.
Realmente não há muito mais a dizer aqui. Basta adicionar o caminho PATHe clicar em OK.
Conjunto JAVA_HOME
Enquanto você está nisso, você também pode definir JAVA_HOME. Essa é outra variável de ambiente que também deve conter o caminho Java. Muitos programas Java e não Java, incluindo os populares sistemas de compilação Java Maven e Gradle , gerarão erros se não estiverem configurados corretamente.
Se JAVA_HOMEnão existir, crie-o como uma nova variável de ambiente do sistema. Defina-o como o caminho do diretório Java sem o bin/diretório, ou seja C:\Program Files\Java\jdkxxxx\.
Lembre-se de editar JAVA_HOMEdepois de atualizar o Java também.
Feche e abra novamente o prompt de comando
Embora você tenha modificado PATH, todos os programas em execução, incluindo o cmd, apenas veem o antigo PATH. Isso ocorre porque a lista de todas as variáveis de ambiente é copiada apenas em um programa quando ele começa a ser executado; depois disso, ele somente consulta a cópia em cache.
Não há uma boa maneira de atualizar as variáveis de ambiente do cmd , basta fechar o prompt de comando e abri-lo novamente. Se você estiver usando um IDE, feche e abra-o novamente.
Veja também