Blog and Site, BETA!
Random header image... Refresh for more!

Gerando classpath a partir de diretório de jars ou “Lutando com versões diferentes do jdk”

Depois de quase uma tarde lutando para compilar um programa em Java, finalmente encontrei uma solução.

O problema: criar um cliente usando o Apache Axis. Até uns meses atrás funcionava sem problemas, até que eu resolvi atualizar para o Axis 1.5.  Primeira bucha: o trem só compila com java 1.5. O engraçado é que antes eu usava java 1.6 e funcionava, mas na nova versão há testes que não passam com java 1.6. Até aí blz, troquei o jdk com o bom e velho update-alternatives e compilei o Axis (é, eu fiz algumas alterações).

Aí lá fui eu compilar o meu cliente, mas o negócio não ia nem com reza brava. Mantive a calma, eu sabia que o problema era com o classpath, o javac não estava encontrado as minhas libs. Fiz de tudo e nada. Após algumas horas, quando eu já estava prestes a me matricular no vestibular para filosofia, o pessoal do JUGMS me deu uma luz. O meu classpath usava o wildcard *, algo do tipo: meu_diretorio_de_libs/*. E isso funciona que é uma beleza no java 1.6, mas não no java 1.5 :O

Ok, por fim descobri que eu precisava especificar os caminhos para TODOS os jars no meu classpath. Acontece que são muitos e eu não estava afim de ficar copiando e colando por mais meia hora. Foi aí que eu me lembrei que Hard Work Does Not Pay Off e pensei: “será que não dá pra gerar o classpath usando uns pipes e awk”? E dá! Olha só, muito simples:

ls -1 diretório | awk '{ print $0 ":" }' | tr -d '\n'

Aprendi que o ls tem o parâmetro -1 para listar um arquivo por linha e que existe um tal de tr que permite apagar caracteres da entrada e já era, funciona muito bem.

Sem mais :)

Ha! Sem alguém souber um jeito mais esperto de fazer isso, comente aí :)

September 18, 2009   No Comments

Paradigmas Alternativos para Concorrência na JVM

Apresentação feita na JavaOne sobre como tratar problemas de concorrência na prática:

August 26, 2009   No Comments