.jar x .exe

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??

abracos

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.

Por que não experimenta usar o JNLP, utilizar o WebStart.

Torna bem simples o download, basta disponibilizar em umsite para download.

Muito simples :slight_smile:

Entao o problema nao e a distribuicao ou atualizacao, estou falando em questao de performance, se o .exe ganha mto em relacao ao .jar entenderam??

Entendi sim.

Existem 2 maneiras de se preparar um EXE em Java:

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??

O JWS é para atualização e distribuição. Não se esqueça de assinar digitalmente seu JAR.

legal e tu tem algum tutorial, ou lugar q eu possa ler mais sobre isso??
valeu

Pow cara… eu queria aprender assinar digitalmente hein thingol???Queria mesmo =D

Abraço!

           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.

Abraços

André Martins