Criando um executável para uma aplicação Java

Recentemente, conversando com um dos nossos alunos, ele comentou as dificuldades dele em relação a criação de um instalador para uma aplicação Java. Como atualmente a maioria das aplicações são web, há pouco material em relação a criação de instaladores para aplicações desktop.

Para suprir um pouco desta necessidade, criarei uma série de dois artigos explicando como gerar um arquivo executável de uma aplicação Java e como criar um instalador para este executável.

Como o título do artigo indica, neste primeiro irei abordar a criação de um executável.

Curso de
CONHEÇA O CURSO

Gerando o arquivo jar da aplicação

jar (Java Archive) é um formato de arquivo compactado que geralmente é utilizado para agrupar arquivos de classes Java e recursos associados (imagens, bibliotecas, etc.). Caso uma das classes agrupadas neste arquivo definir um método main, ele funcionará quase como um executável, com a diferença que necessitará do JRE (ou JDK) para ser executado. Caso nenhuma classe possua um método main o arquivo jar funcionará como uma biblioteca de classes que pode ser referenciada em outros projetos.

Para este artigo iremos gerar um arquivo jar de uma aplicação JavaFX, assim ele funcionará como um executável. Esta aplicação é abordada no nosso curso de JDBC e você pode obter o código dele no nosso repositório no Github.

Como esta aplicação define acesso ao banco de dados, antes de gerar o arquivo jar é necessário alterar os dados de conexão. Estes dados devem ser alterados de forma que reflitam os dados que serão utilizados quando a aplicação for instalada em outra máquina.

Por exemplo, caso a aplicação utilize um banco de dados online, deve ser informado os dados deste banco. Se no momento da instalação da aplicação, o banco de dados também for instalado, então os dados devem refletir as configurações deste banco.

Neste caso a opção mais simples seria utilizar um banco de dados online, mas para demostrar a segunda alternativa, optarei por instalar o banco em conjunto com a aplicação. Desta forma, estou utilizando os dados abaixo:

urlConexao=jdbc:mysql://localhost:3306/appjavafx?useSSL=false&serverTimezone=UTC
usuarioConexao=appjavafx
senhaConexao=app1java2fx3

Com isso configurado, vamos gerar o jar da aplicação no Eclipse.

Nesta IDE, selecione o projeto no Package Explorer, tw-agenda-fx neste exemplo:

Clique com o botão direito do mouse e selecione a opção “Export“:

Será apresentada uma tela. Nela procure por jar:

Selecione a opção “Runnable JAR file” e clique em “Next“:

Nesta tela é necessário configurar o arquivo jar que será criado. Em “Launch configuration” selecionamos a configuração de execução da aplicação (ao ser executada pelo menos uma vez, o Eclipse já terá criado esta configuração). Já em “Export destination” é informado o local onde o arquivo jar será salvo.

Por fim, em “Library handling“, caso o projeto referencie outras bibliotecas é importante marcar a opção “Extract required libraries into generated JAR” ou “Package required libraries into generated JAR“. Assim, as classes das bibliotecas utilizadas pela aplicação, ou o arquivo JAR delas, serão adicionadas no arquivo jar gerado.

Para esta aplicação em questão, optarei pela opção “Package required libraries into generated JAR“.

Também repare que há um aviso que esta aplicação define argumentos para a JVM, mas este é um detalhe que pode ser ignorado.

Clique em Finish para gerar o arquivo jar:

Para verificar se está tudo certo com o arquivo testado, no prompt de comando execute o comando abaixo:

java -jar AppJavaFx.jar

Se a aplicação for iniciada é porque está tudo certo com ela.

Curso de
CONHEÇA O CURSO

Gerando o arquivo EXE

EXE é a extensão dos arquivos executáveis do Windows. Para transformar um arquivo jar em exe é necessário utilizar alguma aplicação de terceiro. Existem algumas disponíveis, mas a mais simples e mais utilizado, além de ser gratuita é a Launch4j. Com esta aplicação é possível transformar o arquivo jar em um executável de Windows, Linux ou Mac.

Neste artigo focaremos na versão de Windows, mas o processo é igual para os demais ambientes.

O Launch4j pode ser baixado no seu site: http://launch4j.sourceforge.net/

Após instalá-lo e executá-lo, será apresentada a tela abaixo:

Esta ferramenta possui muitas funcionalidades, mas aqui vamos focar apenas nos pontos necessários para gerar o executável. Na primeira tela informe o caminho do arquivo exe, do jar e um ícone:

E em JRE iremos informar o caminho do JRE:

O JRE informado acima é uma versão que gerei utilizando a ferramenta jlink e é importante marcar a opção “Only use private JDK runtimes“. Com isso o Launch4j configurará o executável a utilizar apenas este JRE e ele poderá ser incluído no instalador da aplicação. Por isso o caminho acima deve ser relativo a localização do executável.

Caso não queira gerar um JRE, você também pode informar um JDK.

Após a configuração, clique na seta para gerar o executável. Ou o salve em um arquivo xml e gere com a aplicação launch4jc:

launch4jc config.xml

Para verificar se tudo está correto, você pode executar o executável gerado. Se a aplicação for exibida é porque o arquivo foi criado corretamente.

Com este executável criado, já poderemos criar o instalador, que abordarei na segunda parte desta série. Então até lá!

Deixe seu comentário

Instrutor, nerd, cinéfilo e desenvolvedor nas horas vagas. Graduado em Ciências da Computação pela Universidade Metodista de São Paulo.