javac não está funcionando no prompt de comando do windows

Eu estou tentando usar o javac com o prompt de comando do windows, mas não está funcionando.

Depois de adicionar o diretório "C:\Program Files\Java\jdk1.6.0_16\bin\" ao final da variável de ambiente PATH , o comando java funciona bem, mas o uso de javac me dá o seguinte erro:

‘javac’ não é reconhecido como um comando interno ou externo, programa operável ou arquivo de lote.

Se você o adicionou no painel de controle enquanto o prompt de comando estava aberto, isso não afetará seu prompt de comando atual. Você precisará sair e reabrir ou simplesmente fazer:

 set "path=%path%;c:\program files\java\jdk1.6.0_16\bin" 

Por meio de verificação, execute:

 echo %path% 

a partir do seu prompt de comando e deixe-nos saber o que é.

Caso contrário, verifique se há um javac nesse diretório tentando:

 "c:\program files\java\jdk1.6.0_16\bin\javac.exe" 

no prompt de comando. Você também pode dizer qual executável (se houver) está sendo usado com o comando:

 for %i in (javac.exe) do @echo %~$PATH:i 

Este é um truque bem parecido com o which e / ou os comandos em alguns sistemas operacionais do tipo UNIX.

O sistema operacional Windows pesquisa o diretório atual e os diretórios listados na variável de ambiente PATH para programas executáveis. Os programas do JDK (como o compilador Java javac.exe e Java runtime java.exe) residem no diretório “\ bin” (onde denota o diretório instalado do JDK, por exemplo, C: \ Program Files \ Java \ jdk1.8.0_xx). Você precisa include o diretório “\ bin” no PATH.

Para editar a variável de ambiente PATH no Windows XP / Vista / 7/8:

  1. Painel de Controle ⇒ Sistema ⇒ Configurações avançadas do sistema

  2. Mude para o separador “Avançado” ⇒ Variáveis ​​de ambiente

  3. Em “Variáveis ​​do sistema”, desloque-se para baixo para selecionar “CAMINHO” ⇒ Editar

((leia agora o seguinte 3 vezes antes de prosseguir, NÃO HÁ UNDO ))

No campo “Variable value”, INSERT “c: \ Arquivos de programas \ Java \ jdk1.8.0_xx \ bin” (substitua xx pelo número de atualização e VERIFIQUE que este é o diretório binário do seu JDK !!!) EM FRENTE a todos os existentes diretórios, seguidos por um ponto e vírgula (;) que separa o diretório binário do JDK do restante dos diretórios existentes. NÃO DELETE quaisquer inputs existentes; caso contrário, alguns aplicativos existentes podem não ser executados.

 Variable name : PATH Variable value : c:\Program Files\Java\jdk1.8.0_xx\bin;[existing entries...] 

Screenshot

Depois de um longo Google, vim a saber que o javac.exe deve estar dentro do JDK (C: \ Arquivos de programas \ Java \ jdk (número da versão) \ bin) não dentro do JRE (C: \ Arquivos de programas (x86) \ Java \ jre7 \ bin) “O JRE não vem com um compilador. Ele (JRE) é simplesmente um ambiente de tempo de execução Java. O que você precisa é do kit de desenvolvimento Java.” a fim de usar o compilador javac

o javac não funcionará se você estiver apontando dentro do jre

Para usar o javac no cmd, o JDK deve estar instalado no seu sistema …

Para o caminho javac

caminho = C: \ Arquivos de Programas (x86) \ Java \ jre7 \ bin isso está errado

path = C: \ Arquivos de programas \ Java \ jdk (número da versão) \ bin está correto

Certifique-se de que “javac.exe” esteja dentro do seu “C: \ Arquivos de Programas \ Java \ jdk (número da versão) \ bin”

Não se confunda com JRE e JDK, ambos são totalmente diferentes

Se você não tem JDK pls download neste link http://www.oracle.com/technetwork/java/javase/downloads/index.html

thread de referência para JDK VS JRE Qual é a diferença entre o JDK e o JRE?

Eu sei que isso pode não ser o seu erro específico, mas uma vez eu tive um espaço principal no meu caminho e java iria funcionar, mas javac não.

Por que vale a pena, eu ofereço o sábio conselho: “Examine atentamente o seu caminho”.

Experimente as soluções aqui: http://techdem.centerkey.com/2009/05/javahome-command-script.html

Estes são muito mais robustos para mudar – como quando você atualiza o JDK ou JRE, desde que não haja nenhum caminho codificado.

A solução rápida (se você não quiser ler o blog) é

 C:\>for /d %i in ("\Program Files\Java\jdk*") do set JAVA_HOME=%i C:\>set PATH=%PATH%;%JAVA_HOME% 

Você pode adicionar essas linhas a um script de boot / login.

Eu só tinha que fazer isso para fazer isso funcionar no windows 7 64.

Abra um prompt de comando (cmd.exe) e digite:

 set CLASSPATH=C:\Program Files\Java\jdk1.7.0_01\bin 

Certifique-se de reabrir todo o prompt de comando em execução do Windows para obter a variável de ambiente atualizada também.

Ok, isso não pode ser sempre o caso, mas muitos de nós já cometemos esse erro no passado e poucos deles ainda não estão cientes disso, ou seja, toda vez que você anexa um caminho (qualquer caminho) de qualquer variável de ambiente, você É provável que você acerte a barra de espaço logo após o “ponto-e-vírgula” (como você faria normalmente, depois do “período” enquanto digita em um editor).

Isso criará um espaço inicial no caminho, por exemplo, “C: \ Arquivos de programas \ Java \ jdk1.6.0 \ bin” e, portanto, o “javac.exe” não será encontrado pelo sistema.

Altere a pasta “jdk1.7.0_45” “jdk1_7_0_60” e atualize o caminho no ambiente Windows. Caso contrário, o caminho ignora o ponto na frente que representa o arquivo oculto e, portanto, a pasta não é exibida nas strings PATH.

Eu enfrentei exatamente o mesmo problema que o java iria funcionar, mas o javac não estaria em um prompt de cmd no Windows 8.

O problema ocorreu porque eu esqueci de remover '>' no final do nome do caminho, ou seja, foi assim:

 C:\Program Files\Java\jdk*\bin> 

onde era suposto ser assim:

 C:\Program Files\Java\jdk*\bin 

O caminho só será definido para a conta do administrador. Portanto, é importante iniciar o prompt de comando como administrador, se você ainda não estiver.

Certifique-se de não permitir espaços (espaço em branco) entre os caminhos na variável Path. Meu problema era que eu tinha espaço em branco e acredito que o Windows tratou como um NULL e não leu meu caminho para o Java.

Eu estava tendo o mesmo problema postado neste título. Java iria funcionar, mas o javac não estaria no prompt de comando do Windows ( cmd.exe ).

Para mim, foi simplesmente que eu coloquei um espaço ao adicionar C:\Program Files\Java\jdk1.8.0\bin ao final da minha variável de ambiente %PATH% .
Remova o espaço entre o ; e o próximo caminho de arquivo.

Eu aprecio isso é uma pergunta antiga agora, mas a minha solução não foi uma resposta aqui, então postá-lo no caso de alguém tenta todo o resto.

No meu caso, uma instalação anterior do Java JRE (em ProgramData / Oracle / Java) tinha uma variável de caminho no topo da minha lista de variables ​​de caminho. O conteúdo desse caminho “Oracle” tinha um java.exe, mas não um javac.exe. Eu adicionei meu caminho completo do JDK ao topo da lista de variables ​​de caminho, à frente do “Oracle”, e então ele pegou o javac.exe assim como o java.

 for /d %i in ("\Program Files\Java\jdk*") do set JAVA_HOME=%i set JAVA_HOME 

esta solução funcionou para mim

“; C: \ Arquivos de programas \ Java \ jdk1.6.0 \ bin” em algum momento você pode esquecer de colocar ponto e vírgula no último caminho existente.

Quando eu tentei fazer o .java para .class o comando Javac não funcionou. Eu comecei a trabalhar indo para C: \ Arquivos de Programas (x86) \ Java \ jdk1.7.0_04 \ bin e quando eu estava nesse diretório eu digitei Javac.exe C \ Test \ test.java e fez a class com que tática. Tente isso.

Dê como “C: \ Arquivos de Programas \ Java \ jdk1.6.0_16 \ bin”. Remova a barra invertida que irá funcionar