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.
Felagund
Por que não experimenta usar o JNLP, utilizar o WebStart.
Torna bem simples o download, basta disponibilizar em umsite para download.
Muito simples
fabioebner
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??
T
thingol
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.
fabioebner
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??
T
thingol
O JWS é para atualização e distribuição. Não se esqueça de assinar digitalmente seu JAR.
fabioebner
legal e tu tem algum tutorial, ou lugar q eu possa ler mais sobre isso??
valeu
neeryck
Pow cara… eu queria aprender assinar digitalmente hein thingol???Queria mesmo =D
Abraço!
Andre_JavaWorld
Um.exenaoémaisrapidoqueumjar,eemalgumasocasioes,o.jarchegaaganhardeexe'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.