Java: Algo sobre o classpath que eu não sabia (e talvez você também não)

Topei com este post, no qual é mencionada uma novidade do Java 6 que não conhecia: você agora pode usar caracteres coringa para definir o classpath da sua aplicação pela linha de comando!

A situação é bem conhecida: você possui uma aplicação que utiliza 293847203497823489762348976 jars. Então, é necessário definir o classpath da mesma. Primeiro executaria um comando como

java -classpath lib/commons-logging-1.1.1.jar:lib/commons-jci-core-1.0.jar:commons-io-1.2.jar:lib/junit-3.8.2.jar:lib/maven-project-2.0.8.jar:lib/rhino-js-1.6.5.jar: ...

ARGH!

Agora, no Java 6, é possível fazer algo como

java -classpath classes:lib/'*' Main

Bem mais simples. Claro: há ferramentas que fazem isto para você (Netbeans por exemplo). Só que para aqueles que ainda gostam de fazer as coisas no braço, segue o post citado acima. :)

Ainda mais informações podem ser encontradas neste link.


Publicado

em

por

Tags:

Comentários

5 respostas para “Java: Algo sobre o classpath que eu não sabia (e talvez você também não)”

  1. Avatar de Heleno Alves
    Heleno Alves

    Eu não sabia … Com certeza algo extremamente útil. Sempre me questionei do porque desta coisa tosca de escrever todos os jar.

  2. Avatar de Alessandro Dourado

    Eu tb não conhecia essa novidade!! A partir de hoje vou usar menos shell script para executar meus programas java.

  3. Avatar de Cristiano

    Eu também não sabia, ficava aquela tripa de arquivos. Excelente dica.

  4. Avatar de thommas
    thommas

    esse classe:lib/’*’ vai para o lib do projeto?
    tenho uma classe email que necessita do jar para rodar pelo prompt, mas ainda n consegui colocar para rodar. Se colocar no comando classes:lib/’*’ antes da minha classe com metodo man irá funcionar?

    1. Avatar de Kico (Henrique Lobo Weissmann)
      Kico (Henrique Lobo Weissmann)

      No caso vai para o classpath da sua aplicação em execução.

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.