Página 1 de 1

Executável em JAVA para Windows

MensagemEnviado: 08 Jun 2010 10:34
por Escatopholes
Pessoal, eu comecei a desenvolver um sistema em JAVA e agora ele está mais ou menos funcionando, porém sempre que eu vou executá-lo em Windows eu preciso primeiro carregar a máquina virtual.

A pergunta é: É possível geral um executável (.exe) para execução no Windows totalmente independente da máquina virtual JAVA?

Eu imagino que deveria ser um executável similar ao que se obtém compilando um programa em C Builder.

MensagemEnviado: 08 Jun 2010 10:37
por Francesco
Os sistemas em Java, como o Eclipse por exemplo, normalmente tem um executável que inicia a máquina virtual e chava o arquivo JAR para executar.
Esse executável que chama tudo pode ser feito em C, C++, ou mesmo em Delphi.

No java não é possível gerar um "executável", pois ele é feito para funcionar "multi-plataforma". Dessa forma, sempre e sempre você vai precisar da máquina virtual.

No entanto, se quiser fazer seu sistema java ser "independente", dê uma olhada neste link: http://portableapps.com/apps/utilities/java_portable_launcher

Francesco

MensagemEnviado: 09 Jun 2010 10:46
por ivan
É possível geral um executável (.exe) para execução no Windows totalmente independente da máquina virtual JAVA?

Não

Porque a linguagem Java foi pensada com o conceito WORA(write once run anywhere), ou seja, uma aplicação uma vêz escrita em Java, teoricamente, rodaria integralmente em qualquer plataforma. Isso só não é verdade para a as questões de apresentação, uma vêz que a interface na Web é uma, nos PCs outra e nos dispositivos móveis outra, nos mobiles o problema é ainda maior por causa da diversidade de dispositivos.
Este conceito, o WORA, é implementado através da JVM que esta sim é compilada para o ambiente nativo. Então, o compilador Java gera um código descrito como BYTE CODE que é interpretado pela JVM.

O que normalmente se faz é criar um arquivo .BAT que chama a JVM através de uma linha de comando ou, até mesmo, cria-se um .EXE que faz o mesmo papel do .BAT.

MensagemEnviado: 09 Jun 2010 11:08
por Francesco
Um executável é bem mais elegante que um BAT... vide sistemas grandes em Java.

MensagemEnviado: 09 Jun 2010 15:51
por ivan
Creio que a questão não seja só a "elegância". Ao executar a JVM a partir de um .exe será criado um processo filho que terá algumas restrições que a execução a partir de um .BAT pode não ter. Como exemplo de startup a partir de um .BAT temos:

- Servidor Apache(qdo não configurado como serviço)
- MySQL (idem acima)
- Servidor Tomcat - escrito em Java(idem acima)

Devem haver outras considerações técnicas a serem levadas em conta além da "elegância", mas não vou fazer nenhuma pesquisa a respeito para ampliar a discussão e criar uma polêmica a respeito.

MensagemEnviado: 09 Jun 2010 16:00
por Francesco
Ivan, por outro lado o seu código fica fechado. Isso porque não seria apenas "chamar" a JVM, mas verificar se ela está instalada, funciona, verificar a integridade de algum arquivo de sistema, etc. Coisas que um BAT não faria.

Um exemplo de sistemas assim são...

Thunderbird
Eclipse
OpenOffice
Sunbird

Não vejo dificuldade em se criar uma executável.

MensagemEnviado: 10 Jun 2010 12:21
por ivan
Desculpe,

...código fica fechado...

A meu ver desnecessário, a menos que tenha questões de segurança como o têm o IRPF e o ReceitaNet. Mesmo assim, qq editor hex abre a chamada e outras coisas +... Montar dinamicamente os parâmetros de uma chamada system, em C, ou usando API do Ruindows só pra escondê-la, bem... nem se fala.

...verificar se ela(JVM) está instalada, funciona...

Um arquivo BAT faz!

...verificar a integridade de algum arquivo de sistema...

O próprio sistema em Java deve fazer isso

Como disse anteriormente, na minha opinião só vale a pena a criação de um .exe se houverem outras considerações técnicas.
Mas respeito a sua opinião Francesco.

MensagemEnviado: 10 Jun 2010 12:29
por Francesco
Ivan, você me entendeu mal... não estou desfazendo de sua opinião. Seria muita hipocrisia minha, uma vez que me iniciei no DOS e fiz muito uso de arquivos BAT.

Apenas acho que o executável fica mais elegante... no final, quem vai decidir a melhor opção vai ser o 'Escatopholes'.

Desculpa aí qualquer coisa.

MensagemEnviado: 28 Nov 2011 15:03
por _blackmore_
Faz pouco tempo, passeando pela net eu baixei um programinha que deveria rodar em java, mas o bixo precisava que fosse rodado um .EXE para que as configurações necessárias fossem verificadas e instalado o software no SO.
Agora me digam po favor, como fazer um executável para realizar a função de instalação de algum pqno aplicativo em java? Que linguagem e software pode ser utilizado?

MensagemEnviado: 28 Nov 2011 15:58
por tcpipchip
Tem varios...mas muitos parados...nao atualizados...

Aqui é um link bom para tirar tuas duvidas...e veja TOOLS no final

http://www.excelsior-usa.com/articles/java-to-exe.html

TCPIPCHIP

Re: Executável em JAVA para Windows

MensagemEnviado: 25 Set 2018 19:32
por nagkiller
Apesar de o tópico ser antigo e o autor provavelmente já tenha tido sua solução, segue um exemplo de programa que converte java em EXE, utilize o Launch4j:

http://launch4j.sourceforge.net/

Para instalar sua aplicação, se desejar criar um instalador, utilize o Inno Setup:

http://jrsoftware.org/isinfo.php

Flw...