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




