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.exe
está localizado. Isso é realizado com PATH
uma 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 javac
não é um comando interno , pesquisa o sistema PATH
seguido 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,
java
mas nãojavac
.
- O Java Development Kit (JDK), que contém ambos
java
e 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 javac
porque 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
PATH
e 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 set
comando 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 bin
diretó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 bin
pasta 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á PATH
toda 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 PATH
variá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, javac
chamará o compilador Java 11, que criará .class
arquivos da versão 55 , mas java
chamará 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 PATH
e 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_HOME
nã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_HOME
depois 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