Algumas vezes quando estamos iniciando nossos estudos sobre JAVA e seu complexo universo, nós encontramos algumas apostilas e livros que nos “ensinam” a programar sem o uso de IDE. Essas apostilas e livros nos levam a um prompt do DOS e pedem para compilarmos o nosso “primeiro programa” com uma linha de comando semelhante a essa:
javac HelloWorld.java
Normalmente nós nem nos damos conta que existe esse comando e outros inúmeros , porque quando trabalhamos com JAVA utilizando alguma IDE como o Eclipse, Netbeans ou Jcreator e elas os utilizam “por baixo dos panos”. Mas o que faria se caso ocorresse algum problema e todos os códigos que mande compilar pela IDE não compile (isso é, gerar o .class)? E se esse projeto fosse algo urgente e não existe o tempo hábil para ficar procurando a solução ou baixando uma nova IDE? E se fosse teu trabalho de conclusão de curso e tu precise urgente testar para ver se está tudo certo? Sei que isso se parece muito com alguma das leis de Murphy , mas eu mesmo já vivenciei situações como essas em que precisei urgente compilar e testar as classe, porém estava preso à IDE. Pensando nisso e em alguns outros fatores em que a ciência holística da informática nos proporciona ( ah, tu também aprendeu que a informática faz parte das exatas? É que tu ainda não dependeu completamente dela) irei falar sobre alguns componentes importantes do JDK, o que são JAVA_HOME, CLASSPATH E PATH e como configura-los.
O que são????
Quando se instala o JDK ( Java Development Kit) muitas pastas são criadas com uma infinidade de arquivos. Entre esses arquivos alguns são especiais e são usados para que as classes possam ser compiladas (isto é, gerar o bytecode que é o .class) e executadas. Normalmente ao instalar as IDEs o caminho em que se encontra esses arquivos são criados de forma automática para que quando se clique em RUN (rodar) o código desenvolvido compile e apresente o resultado desejado (ou não né??heheeh). Porém a pergunta é: Quais são esses arquivos, onde se encontram e para que servem?
Quais são os arquivos?
Esses arquivos são o java e javac e se localizam na pasta bin do diretório em que foi instalado o JDK. Junto com eles existem mais 47 arquivos executáveis ( no JSE 6). Abaixo explico um pouco sobre o arquivo java e javac e aproveito para apresentar alguns outros que considero importante e que estão localizados nessa pasta.
java: É executável do java em si. Tem como função lançar a aplicação java, isto é, iniciar o JRE, carregar a classe especificada na JVM e invocar ela no método main. Se escrever java no prompt do DOS irá ver uma imensidão de linha com os argumentos que ele suporta.
javac: É o compilador que transforma o .java em .class. Sem ele não seria possível criar uma aplicação java.
javadoc: É o responsável por gerar os comentários localizados no código fonte e apresentar no momento da programação. Pode-se gerar o próprio javadoc utilizando algumas linhas de comentários específicas (/** */) ou ver os existentes para os diversos métodos e classes existentes na linguagem. Para testar escreva na IDE a palavra String e deixe o mouse em cima para verificar o javadoc dela.
jconsole: Serve para monitorar e gerenciar os recursos da aplicação java tanto na JVM local como remota. Muito útil para verificação de problemas e rendimento.
policytool: Cria e modifica politicas internas de arquivos de configuração que foram definidos na instalação do JDK.
jrumscript: É um shell com linha de comando para se escrever scipts. Por padrão ele utiliza o javascript , mas pode ser alterado para outras linguagens.
jvisualvm: Apresenta de forma gráfica as informações que estão rodando na JVM.
Caso tenha interesse nos demais executaveis, de uma olhada no site de documentação da sun ou na lista de programas instalados na JDK 6 – Update 16.
Existem também alguns .jars ( na verdade 4) que são utilizados. Esses se encontram na pasta lib e jre/lib do JDK (por favor, não se confunda com a pasta JRE para rodar aplicativos java.) Se lembra das funções do executável java que se localiza na pasta bin do JDK? Pois é, esse cara quando executado ( e sempre é executado porque em caso contrário não existiria o JAVA rodando na tua maquina) inicia a JVM e a JVM por sua vez procura e carrega alguns .jars. Entre esses .jars que são carregados estão os da pasta lib e jre/lib do JDK. Esse assunto da JVM é muito profundo, então caso tenham interesse postem nos comentários que no próximo post eu escrevo sobre isso ou acesse o site da sun que fala sobre o assunto.
Agora que sabemos algumas coisas do funcionamento do JDK, vou explicar o que é o JAVA_HOME, CLASSPATH e PATH, para o que servem e como os montar.
JAVA_HOME: JAVA_HOME, como o nome já diz é a CASA_JAVA (tradução estranha!). É nele que se indica onde que foi instalado o JDK (casa == morada == local em que “MORA” o JDK). Por exemplo: o meu JAVA_HOME é C:\Program Files\Java\jdk1.6.0_17 . Muitas vezes as pessoas pensam que o JAVA_HOME é onde está instalado o JRE. NÃOOOO É ISSO! Quando se pensa JAVA_HOME,CLASSPATH e PATH se usa o JDK e não o JRE. Esqueça o JRE!!!!!
CLASSPATH: Ele significa caminho de classe. É onde se indica os .jars que estão localizados na pasta lib e jre/lib do JDK.
PATH: Ele significa caminho. Nele se indica onde está os executáveis (aquela pasta bin que comentei antes) do JDK. Em meu caso é C:\Program Files\Java\jdk1.6.0_17\bin.
Como criar o JAVA_HOME, CLASSPATH e PATH?
Para se criar o JAVA_HOME, CLASPATH e PATH é necessário acessar as variáveis de ambiente do windows. Para isso existem diversas maneiras. A partir do Windows XP pode se utilizar a seguinte combinação de tecla de atalhos: Bandeira do windows (aquela ao lado do alt esquerdo) + pause. Irá aparecer uma janela e entre as opções aparecerá as configurações avançadas do sistema. Acessando ela irá aparecer as propriedades do sistema (figura 1). Acesse a aba avançado e clique no botão variáveis de ambiente (figura 2).
Figura 1 – Propriedades do sistema.
Figura 2 – Tela com as variáveis de ambiente.
É nessa tela que tu irás criar o JAVA_HOME, CLASSPATH e editar o PATH adicionando as informações desejadas.
MUITA ATENÇÃO NESSA HORA!!!!!
Esse ponto é crucial!!!! Na figura dois, pode ser visto dois tipos de variáveis e respectivos botões. Esqueça por completo os botões NOVA, EDITAR e EXCLUIR da caixa das variáveis de usuário e clique em NOVA na variável do sistema(figura 3).
Figura 3: Utilize as variáveis do sistema e não variaveis do usuário.
Clicando em nova irá aparecer a seguinte tela (figura 4).
Figura 4: Adicionando nova variável de sistema.
Nessa tela iremos adicionar o JAVA_HOME e o CLASSPATH.
Atenção de novo!
O nome da variável irá receber o nome JAVA_HOME e o valor da variável será o endereço que foi instalado o JDK. Em meu caso ele foi instalado em c:\program files\java\jdk1.6.0_17 (figura 5). Adicione os valores e clique em OK para validar as informações setadas.
Figura 5: Adicionando JAVA_HOME.
Adicionado o JAVA_HOME chegou a vez de criarmos o CLASSPATH. Esse ai será um pouco trabalhoso por se tratar de diversos arquivos .jars. A lógica para criação é parecida com a das figuras 3, 4 e 5, porém mudando apenas o nome e o valor da variável.
figura 6: Adicionando CLASSPATH.
Agora que temos a JAVA_HOME não é preciso colocar todo o caminho do JDK para a pasta lib e jre/lib, isto é, c:\program files\java\jdk1.6.0_17\lib e c:\program files\java\jdk1.6.0_17\jre\lib. O que precisa-se é indicar a variável de sistema JAVA_HOME e a pasta desejada (figura 6). A seguir como que deve ficar as informações do valor de variável.
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\htmlconverter.jar;%JAVA_HOME%\jre\lib;%JAVA_HOME%\jre\lib\rt.jar
Escreva exatamente como está acima ( inclusive com o .; no inicio, as %% entre o JAVA_HOME e os ; antes de escrever o novo caminho) ou apenas copie e cole no valor da variável(muito mais fácil né
).
Imagino que já tenhas observado que nas variáveis de sistema existe uma variável com o nome PATH. Selecione ela e clique em EDITAR ou de um duplo clique em cima (figura 7). É muito improvável que não exista o PATH nas variáveis do sistema, mas caso não, crie ela.
Dentro do PATH devemos adicionar a exata linha de comando: ;%JAVA_HOME%\bin . O PATH editado deverá ficar igual a imagem abaixo.(figura 8). Apenas para lembrar, o igual que eu digo é a linha de comando (;%JAVA_HOME%\bin ) e não o que tem antes dela.
figura 8: Adicionando o valor da variável no PATH.
Feito isso clique Ok para fechar todas as caixas abertas e as validar e acione um prompt do DOS. Dentro dele escreva os comandos que comentei no meio do post (javac, jconsole, jpolicytool, jvisualvm). Caso funcione a aplicação é que está tudo configurado corretamente, caso contrário, verifique se adicionou corretamente o endereço do JAVA_HOME ou se não se esqueceu de algum detalhe como ponto e virgula.

Fala Ari, beleza?
A gente lembra bem de como um tutorial desse faz falta na época que tava aprendendo hein heueheuheu
Valeu por linkar meu blog, vou continuar acompanhado o seu ae tbm!
Abraços
Puxa, nem me fala. Quantas vezes quebrei a cabeça com diversos tutoriais que ensinavam mas não funcionavam…. Agora tá de barbada para todos os que querem fazer funcionar de forma correta.
De nada. Vou acompanhando tb o teu.
Valeu
E chato quando você baixa um tutorial. que não tem os fontes, não funciona , fora outras coisas!
Ari Cesar Amaral é um prazer fazer parceria com você estarei acompanhando!
Qualquer coisa estamos ai!!
e com sua permissão quero referenciar esse post seu lá no meu Blog! Pode ser?
vlw
abs
Muuuito bom esse tutorial. Agora eu sei realmente o que significa PATH, CLASSPATH e JAVA_HOME. Vlw aí!!!
Puxa vida. Isso que eu chamo de tutorial!!
parabéns, perfeito.
Sou iniciante e aprendi muito só nesta página.
Se tiver alguma coisa parecida para configurar o Eclipse poderia me indicar?
Grato
Edson
Sinceramente, muito explicativo o tutorial, mais não sei o que acontece que para mim não funcionou, vistei milhares de site para achar o correto e a maneira que funcionou aqui foi a seguinte para caso tenha alguém passado pelo mesmo problema:
CLASSPATH: .;JAVA_HOME
JAVA_HOME: C:\Arquivos de programas\Java\jdk1.6.0_20
PATH: C:\Arquivos de programas\Java\jdk1.6.0_20\bin
De qualquer forma, agradeço muito ao Ari, pelo belo trabalho, abraços….
Muito bom. agradecido pela explicação…estava quebrando a cabeça.Ele foi direto ao assunto sem enrolação. Parabens
Antes de ler este tutorial, eu estava seguindo outros e já tinha clicado no botão “Novo” onde eu não deveria clicar, só não adicionei nada pois o tutorial era antigo e eu queria uma outra referência que fosse atual, para saber se isso ainda era necessário para a minha versão (JDK 6u20). Você, que explicou detalhadamente, e a cada termo técnico fez uma auto-explicação, eu que sou leigo.. entendi tudo o que você escreveu neste tutorial. Obrigado e continue assim!
Muito bom! tá de parabéns! adorei o blog todo!
Muito direto e suscinto seu artigo. Parabéns pela ótima e simplista iniciativa.
Boa cara, bem esclarecedor.
dificilmente comento em blogs, mais puta que pariu, o seu tutorial foi perfeito brother, VLW!!!!!
Valeu! Parabéns pelo artigo. Muito objetivo! funcionou na primeira…
Parabéns pelo tutorial. Deixou claro os conceitos de PATH, CLASSPATH E JAVA_HOME e a explicação sobre a configuração ficou 10. Vlw
Poxa cara, muito bom mesmo….
Muitos tutoriais por ai ensinam, mas este foi um dos melhores…
Parabéns”!!!
Tenho um ano e meio de experiência trabalhando com java, e sinceramente já li muitas coisas a respeito disso e nunca foi tão claro como nesse tutorial, parabéns pela didática pela ilustração clara com imagens… enfim um show de bola…
Show de Bola!!!
Funcionou 100% cara, Obrigado!
Olá Felipe,
Que bom que funcionou. Se precisar de alguma outra coisa prende o grito que tamos ai para ajudar.
Abraço.
Tava arrancando os cabelos aqui. É ruim demais quando começo a ficar inquieto, cheio de janelas abertas e páginas diferentes sem conseguir alguma resposta que me ajudasse; mas finalmente cheguei na sua página!! Alívio. Vou favoritar ela para quando eu tiver meus momentos de “muito doido”.
Obrigado pela ajuda. Abraço!
o que foi que eu errei no path ? Estou estranhando o QuickTime. O que ele ta fazendo aí ???
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;D:\Arquivos de programas\QuickTime\QTSystem\;%JAVA_HOME%\bin
Olá Walter!
Tu verificou se o teu java home tá direcionando para a tua pasta do JDK? Tu chegou a colocar as informações da lib e bin conforme o exemplo da imagem 6?
Dá uma verificada nisso, porque ai deve tá o problema.
Não te preocupa em ter o quickTime no Path. Isso foi colocado ai quando tu fez a instalação do aplicativo.
Qualquer coisas tamos ai
Sensacional, didático e completo, antes de fazer as coisas é importante entender como elas funcionam, muito obrigado
Hoje começo em java, e não tive muitos problemas graças a você. Obrigado cara.
Olá !
Esse turorial serve para o win 7 profissional ?
Olá David!
Serve sim. Dá um grito caso tenha algum problema em configurar.
Excelente tutorial salvo minha vida cara
Cara obrigadão conseguir , os comando estao tudo certinho, o único problema é que nao to conseguindo compilar os códigos pelo cmd feitos no bloco de notas, Obrigado
Olá Wesley
O que apareceu quando tu abriu o prompt e executou o comando “javac”? Se ele trouxe um monte de informação quer dizer que tá tudo ok para compilar, caso contrário ele não tá com o caminho certo no path. Qual a msg de erro que tá dando para ti?
No aguardo.
Olá Ari beleza? Gostei e muito do tutorial, mas gostaria de fazer uma ressalva, atualmente estou utilisando a versão do JDK que é jdk1.7.0_01 e reparei que para chamar o JAR da “Ferramenta de Política” não preciso por “jpolicytool” e sim somente “policytool”, me confundi e ja achei que tinha feito tudo errado, mas reparei que no começo do tutorial você colocou “policytool” então dei o comando via prompt e tudo bem, abriu numa boa a “Ferramenta de Política”, brigadão pelo TUTORIAL, e fica a dica para o pessoal não se confundir também.
Opa Wandeson, valeu pela dica.
Esse tutorial foi feito a uns 3 anos atrás, então pode ter mudado algum detalhe como esse que tu comentou. Vou dá uma analisada no tutorial e ver o que mudou para a jdk 1.7.
Abraço.
boa tarde, aqui nem tenho instalado o jdk, e para a aplicacao License Server da Totvs funcionar tem que colocar java_home=C:\ARQUIVOS DE PROGRAMAS\JAVA\JRE6, isso nao bate com o que vc falou no começo do tutorial. obrigado.
Olá Aldinei, tudo bem?
Interessante essa tua afirmação. Como a sigla mesma diz, JDK é o kit de desenvolvimento java e dentro dele tem todas as “ferramentas” para se desenvolver em Java. Até agora eu não conheço nenhuma IDE que não precise de JDK. Se tentar utilizar o Netbeans, JDeveloper, Eclipse, Red Hat Developer Studio tu vai perceber que eles irão precisar da JDK par compilar e executar os códigos que foram desenvolvidos. Isso vale mais ainda para quem compila na “unha” pois vai ter que digitar javac para compilar e java para executar o código.
Tenta descobrir onde que fica o javac dele e depois me reponde aqui.
Abraço.
bom dia, ainda nao consegui convencer a Totvs de que nao precisa dessa variavel java_home, pelo que percebi eles estao usando ela para chegar até o java.exe, mas é dispensavel, ja que ao instalar o JRE ele joga uma copia do java.exe no %windir%\system32 dai automaticamente fica na path do ambiente.
Reblogged this on new Blog();e comentado:
Excelent tutorial para definir class path no windows
tutorial pauleira doooooooooooido!!!!!!!!!!
acabou com uma agonia de 4 dias .
gostaria de dizer muito obrigado a quem escreveu
Thanks…