Curiosidades, Dicas, Java

Onde obter versões antigas do Java (JDK e JRE)

A plataforma Java é uma tecnologia bastante madura e bem antiga. De acordo com a página Java Version History no Wikipedia a primeira release (1.0) do Java Development Kit (JDK) data de Janeiro de 1996. Com uma trajetória tão longa e com sucesso comprovado no mercado corporativo não é raro nos depararmos com projetos em plena execução em versões antigas dessa plataforma.

“Volta e meia” precisamos baixar uma versão antiga da JVM para realizar testes ou preparar um ambiente semelhante ao atual ambiente de execução do projeto. Mas, onde podemos obter versões oficiais e específicas do Java (JVM, JRE, bibliotecas, etc)? As versões mais antigas eram mantidas pelo “falecida” Sun Microsystems. Bem, existe uma página que faço questão de manter em meus Favoritos. Trata-se da página “Oracle Java Archive“. Nela é possível obter todas as versões antigas da plataforma Java Standard/Enterprise Edition, inclusive bibliotecas depreciadas.

oraclejavaarchive

Ninguém gosta de lidar com velharia. Mas pra quem lida com consultoria em plataformas “maduras” como o Java isso é quase inevitável.

Abraço.

Anúncios
Comunidade, Eventos, Java, Publicações

TDC 2012: the developers conference

 The Developers Conference 2012, um evento organizado pela Globalcode

Este ano tive a honra de ter uma palestra aceita no evento The Developers Conference (edição Goiânia). O TDC é um dos maiores eventos de software do país. O evento reune anualmente desenvolvedores das principais plataformas e tecnologias do mundo do software. É uma verdadeira mistura de tribos tecnologicas. São várias trilhas com debates e palestras de altíssima qualidade disponíveis para todos os interesses e gostos. As trilhas acontencem simultâneamente durante o evento.

Na edição Goiânia que acontence dias 20 e 21 de Outubro participarei da trilha Java com a paelstra “Aumentando a eficiência do web container com chamadas assíncronas“.

Se você ainda não fez a sua inscrição corra e não perca a oportunidade de ficar por dentro das novidades no mundo do software e aproveite para fazer um ótimo social network durante o evento.

Geral, JBoss

Erro java.lang.NoClassDefFoundError: sun.awt.X11GraphicsEnvironment

Depois de um longo tempo (tipo… quase 2 anos :-)) sem postar nada no blog, resolvi voltar a postar…

Neste post desejo compartilhar um “workaround” que encontrei na NET (depois de uma googlada básica) quando me deparei com um problema esquisito em uma aplicação web “deployada” no JBoss AS. Uma das funcionalidades dessa app faz a geração online de uns relatórios em PDF usando o JasperReports. As vezes a aplicação não consegue gerar o relatório e lança a seguinte exception no log do AS: java.lang.NoClassDefFoundError: sun.awt.X11GraphicsEnvironment. Encontrei algumas explicações na net (refs. [1] e [2]) que dizem, aparentemente, ser uma pala relacionada às bibliotecas gráficas em ambientes Linux/Unix. Segundo o trecho abaixo copiado da ref. [1] as bibliotecas AWT da Sun dependem do sistema de janelas X do Linux.

Sem aprofundar muito na questão de como a JVM abstrai isso do SO… O lance é que em ambientes de produção geralmente o ambiente gráfico do S.O (X11) está ausente. A ref. [1] sugere executar uma versão do X Server sem display (Xvfb), ou seja, o Xvfb executa as operações gráficas em memória. Após rodar o Xvfb deve-se configurar a var. de ambiente $DISPLAY do S.O apontando para esse daemond. Além dessa opção do Xvfb, ele sugere setar a JVM property "-Djava.awt.headless=true" que supostamente resolve o problema. Como a 1º opção é um pouco mais complicada preferi configurar a JVM Property mesmo. Em princípio o problema foi sanado, pelo menos, até o momento.

Caso queira saber masi sobre como usar o Xvfb em ambientes sem o X instalado veja a ref. [3] que mostra um cenário em que foi utilizado um Selenium para realização de testes em um servidor sem ambiente gráfico instalado.

_________
Referências:
[1] http://www.jguru.com/faq/view.jsp?EID=222296
[2] http://www.theserverside.com/discussions/thread.tss?thread_id=16049
[3] http://www.jeveaux.com/blog/2008/xvfb-como-usar-o-selenium-sem-ter-um-x-server/