Pessoal, e o seguinte, estou distribuindo os meus programas em java(desktop) para os meus clientes, porem um rapaz veio com uma ideia, como 90pc dos nossos clientes utilizam windows… ele deu a ideia de gerar um .exe dos nossos programas para enviar ao cliente, pois ele leu em algum lugar q um .exe seria mais rapido do que um .jar (por ser codigo interpretado), pergunto…
isso e verdade?? posso gerar um .exe para os meus clientes windows. e quem nao usar windows so mando os .jar normalmente?? ate onde isso e uma boa ou nao??
Quanto a um exe ser mais rápido que um jar, isso é muito relativo; acho que nem mesmo usando o ExcelsiorJET (que precompila seu código Java em um EXE de verdade, não um EXE fajuto).
De qualquer maneira, se você precisar fazer atualização de versão, é melhor que esteja em um JAR que em um EXE.
A primeira é bem babaca porque é simplesmente pegar um EXE especial, que concatenado com o JAR, simplesmente põe o próprio EXE no CLASSPATH (é meio estranho mas funciona). Esse tipo de coisa não acelera o carregamento do programa de forma alguma.
A segunda é um pouco incompatível com vários programas em Java existentes - você compila o programa com um compilador especial, como o ExcelsiorJET (que é pago e bem caro) ou o gcj (de graça, mas não muito compatível com vários programas em Java, porque não suporta todos os pacotes - não sei se suporta o Swing inteiro, por exemplo). Pode até melhorar o desempenho em alguns pontos, mas em outros ele não melhora, e pior, os executáveis costumam ficar gigantescos - bem maiores que o .jar original. Como eles precisam de uma grande biblioteca de runtime, então é sempre necessário criar um instalador que instala o runtime - o que pode ser muito chato em termos de instalação.
Ainda sou a favor do JWS; dá bem menos dor de cabeça.
Entao meu eu utilizo, acesso a banco, disco, digitalizacao, gerar arquivos no brOffice, com o jws eu consigo fazer td isso ou seria mais para distribuicao e atualizacao??
Um .exe nao é mais rapido que um jar, e em algumas ocasioes, o .jar chega a ganhar de exe's nativos como c, java tem duas excelentes tecnologias, que se chamam hotspot e jit, o jit "just in time compiler" compila seu codigo no momento de execucao, ou seja, ele toma as decisoes na hora certa de como otimizar seu codigo, alem disso, o hotspot pode, transformar um codigo "quente" da sua aplicacao, que é acessado repetitivamente muitas vezes, em codigo nativo do sistema, coisas que um exe nao tem... um exe é algo estatico (falando de outras linguagens como C). agora voce transformar um jar em exe... nao vejo nenhum ganho.