Posts Tagged ‘portabilidade’

Java portável?

February 11th, 2008

Há pouco tempo enviei um email com recomendações para o pessoal de desenvolvimento da minha empresa, transcrevi muito do email aqui e alterei algumas coisa:

Tenho visto muito problema para fazer deploy de aplicações no que diz respeito à portabilidade das aplicações. Em minha empresa desenvolvemos em Windows mas no cliente usamos servidores Linux. Aqui vão algumas recomendações para evitar esses problemas:

  • Evitem sempre que possível classes do pacote com.sun.*, nem sempre o cliente usa a JVM da sun (no meu caso era mais simples copiar o rt.jar da JVM da Sun para o lib/ext, mas é um tanto gambiarra.. além do mais esse jar tem mais de 40mb);
  • Quando chamarem comandos externos no Ant chamem pelo nome em minúsculo, há diferenças de case senssitiveness entre OS’s, e os comandos em geral são em minúsculo em OS’s Unix-like. E antes de fazer qualquer dessas chamadas, procurem se já não existe uma task para isso, o script fica muito mais limpo e utiliza-se a portabilidade do Java corretamente;
  • Tomem cuidado também com o nome que vocês dão às pastas e arquivos. Estabeleçam um nome e sigam ele, não misturem “InfraEstrutura.txt” com “infraestrutura.txt”;
  • Quando forem compilar qualquer coisa para distribuição usem o parâmetro encoding do javac, iso-8859-1 no caso de se usar Windows e os arquivos estarem salvos no encoding padrão. Na verdade, creio que o mais correto seria desenvolver em utf-8, mas…
  • Evitem caminhos absolutos! Nem todo OS tem c:\!

Mais alguns toques para scripts Ant de distribuição: habilitem o nowarn, os warnings dão impressão de má qualidade e sujam o log; tentem fazer um script que possa ser robotizado (sem nenhum input), muitas vezes é interessante criar cron jobs para ele.