Compilador Javac não está funcionando

22 respostas
java
W

Olá, bom eu estou instalando o JDK e quando testo no terminal o comando para testar o javac, é exibida a mensagem “javac” não é reconhecido como uma comando interno, já olhei em alguns outros fóruns e observei q muita gente teve o mesmo problema, só q não estou conseguindo corrigir.

Na minha variáveis de usuário eu adicionei:
JAVA_HOME : C:\Program Files\Java\jre1.8.0_141

E em variáveis do sistema, no Path está dessa forma:
C:\ProgramData\Oracle\Java\javapath;C:\MinGW\bin;C:\Program Files\Java\jre1.8.0_141\bin;%JAVA_HOME%\bin

Se alguém puder me ajudar nisso eu agradeço mt, pois já estou perdendo bastante tempo com esse problema.

22 Respostas

TerraSkilll

Instalou o JDK ou só o JRE?

O javac faz parte do JDK, então se ele não estiver instalado não irá funcionar. O JRE só executa aplicações java, mas não as compila.

Abraço.

W

bem eu instalei o jdk na última versão do site da oracle

rodevops

@TerraSkilll perguntou justamente por causa disso…

...Java\jre1.8.0_141

Deveria se algo como…

...Java\jdk1.8.0_141

O javac fica dentro da pasta bin dentro de jdk e não de jre como você apontou, pegou?

W

ah sim, pode cre eu copiei o diretorio errado

W

aplico no path e no java home a mudança?

rodevops

Para não ter outros problemas com a instalação, recomendo revisar se configurou a variável classpath…

CLASSPATH : .;%JAVA_HOME%\lib\tools.jar;

rodevops

Somente no JAVA_HOME

W

no caso no terminal continua dando erro no java e em relação a classpath nem possuo ela nas variáveis de ambiente

rodevops

Qual erro gera?

A jvm precisa do classpath configurado…

W

aquele mensagem de não reconhecimento do javac como um comando interno. em classpath eu preciso adicionar o diretorio do JAVA_HOME é isso msm?

rodevops

O valor do CLASSPATH é aquele que mostrei acima…

Depois que configurar tudo, você precisa fechar e abrir novamente o DOS para o windows achar os arquivos…

E para testar o javac basta…

javac -version
W

continua dando a mesma mensagem do javac, n entendo pq n funciona. configurei classpath conforme vc disse e nd

rodevops

Alguma falha na configuração está acontecendo, perceba que no CLASSPATH existe um ponto e ponto-vírgula no valor… confira a pasta jdk está correta no JAVA_HOME…

Tira um print de tela das variáveis…

W

CLASSPATH eu adicionei nas variáveis de ambiente e tá assim:
%JAVA_HOME%\lib\tools.jar;
o JAVA_HOME está dessa forma, em variáveis do usuário:
C:\Program Files\Java\jdk1.8.0_141 . sem ponto e vírgula no final

rodevops

Como te falei, CLASSPATH precisa de um ponto e ponto vírgula antes…

.;%JAVA_HOME%\lib\tools.jar;

O ultimo ponto-virgula é opcional, mas já previne se caso você precisar adicionar outro valor…

Detalhe, O CLASSPATH não precisa ir no PATH como o JAVA_HOME ok?

Apenas o JAVA_HOME vai no PATH depois…

W

po desculpa se eu estou sendo ignorante no assunto, mas continua o erro do javac

rodevops

Relaxa, acontece, ao invés de configurar suas variáveis como de usuário, tente configurá-las como de sistema (painel de baixo)…

Veja se ajuda…

W

Nossa mano funcionou, valeu pra caraca, mt obrigado.

rodevops

E qual foi a solução?

Sempre bom compartilhar com a gente, outras pessoas podem e terão a mesma dúvida…

Bons estudos!

W

foi oq tava descrito na página q vc me indicou msm: criei a variável JAVA_HOME adicionei o diretório do jdk,
criei a variável PATH adicionando o diretório da pasta bin do jdk, e por último criei a variável CLASSPATH adiocionando como valor “.;JAVA_HOME”, isso td dentro de variáveis do usuário.
Valeu mano.

staroski

O classpath não deveria ser variável de ambiente.

Simplesmente faça isso:

Crie a variável JAVA_HOME apontando para a raíz do JDK

E no PATH adicione o %JAVA_HOME%\bin para você ter acesso ao javac e outros executáveis em linha de comando.

Só isso, esquece variável de ambiente CLASSPATH, isso é coisa que tinha que fazer lá nas primeiras versões do Java, final dos anos 90 e início deste século.

O classpath de um aplicativo java tem que ser informado via MANIFEST-MF ou através do parâmetro -classpath da JVM

rodevops

Bom saber, estou tão acostumado com isso, que já ficou “no automático”…

Criado 25 de julho de 2017
Ultima resposta 26 de jul. de 2017
Respostas 22
Participantes 4