Criando um executável para uma aplicação Java \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 03 Horas 

 05 Min 

 22 Seg 

   Tempo restante da oferta: 03 05 22 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) Criando um executável para uma aplicação Java  [ Java ](https://www.treinaweb.com.br/blog/categoria/java) 

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

 Aprenda como transformar uma aplicação Java Desktop em um arquivo executável.

 [ Wladimilson M. Nascimento ](https://www.treinaweb.com.br/blog/autor/wladimilson-m-nascimento) 7 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/11/04160957/EXECUTAVEL-APLICACAO-JAVA.png)  

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.

[  ![Java - Fundamentos](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/java.svg)   Curso Java - Fundamentos Conhecer o curso ](https://www.treinaweb.com.br/curso/java-fundamentos)

## 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](https://www.treinaweb.com.br/curso/java-banco-de-dados-e-jdbc) e você pode obter o código dele no [nosso repositório no Github](https://github.com/treinaweb/treinaweb-java-jdbc).

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:

```properties
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:

![](https://dkrn4sk0rn31v.cloudfront.net/2019/11/01155755/package_explorer_1.png)

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

![](https://dkrn4sk0rn31v.cloudfront.net/2019/11/01155754/package_explorer_2.png)

Será apresentada uma tela. Nela procure por **jar**:

![](https://dkrn4sk0rn31v.cloudfront.net/2019/11/01155753/export_1.png)

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

![](https://dkrn4sk0rn31v.cloudfront.net/2019/11/01155753/export_2.png)

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:

![](https://dkrn4sk0rn31v.cloudfront.net/2019/11/01155752/jar_1.png)

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

```dos
java -jar AppJavaFx.jar

```

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

[  ![Java - Banco de dados e JDBC](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/java.svg)   Curso Java - Banco de dados e JDBC Conhecer o curso ](https://www.treinaweb.com.br/curso/java-banco-de-dados-e-jdbc)

## 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](http://launch4j.sourceforge.net/). 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:

![](https://dkrn4sk0rn31v.cloudfront.net/2019/11/01155752/launch4j_1.png)

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:

![](https://dkrn4sk0rn31v.cloudfront.net/2019/11/01155751/launch4j_2.png)

E em **JRE** iremos informar o caminho do JRE:

![](https://dkrn4sk0rn31v.cloudfront.net/2019/11/01155750/launch4j_3.png)

O JRE informado acima é uma versão que gerei utilizando a ferramenta [jlink](https://docs.oracle.com/en/java/javase/12/tools/jlink.html) 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á!

 [ ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/06/sessao-mentoria.jpg) ](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?forma=cartao)

- [ #Java ](https://www.treinaweb.com.br/blog/tag/java)
- [ #Executável ](https://www.treinaweb.com.br/blog/tag/executavel)
- [ #JAR ](https://www.treinaweb.com.br/blog/tag/jar)
- [ #Eclipse ](https://www.treinaweb.com.br/blog/tag/eclipse)

Autor

 ![Wladimilson M. Nascimento](//secure.gravatar.com/avatar/f0dd442f156a3eacd2880e9cd0eafbd1?d=mm)

## Wladimilson M. Nascimento

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

 [Todos os artigos](https://www.treinaweb.com.br/blog/autor/wladimilson-m-nascimento)  

## Continue estudando

 Transforme leitura em prática com os cursos e formações da TreinaWeb.

 [Ver cursos](https://www.treinaweb.com.br/cursos)   

  Continue lendo

## Artigos relacionados

- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/11/04160959/instalador-aplicacoes-windows-400x280.png)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     7 anos atrás

    ##  [ Criando um instalador para distribuir suas aplicações Windows ](https://www.treinaweb.com.br/blog/criando-um-instalador-para-distribuir-suas-aplicacoes-windows) 

     Existe uma gama de ferramentas que permitem a criação de um instalador do Windows. Neste artigo veja como criar um de forma simples utilizando o Inno Setup.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/04/05114901/ORLEANS-NET-CORE-400x280.png)  [ C# ](https://www.treinaweb.com.br/blog/categoria/csharp) 

     9 anos atrás

    ##  [ Criando uma aplicação distribuída com ASP.NET Core e o Microsoft Orleans ](https://www.treinaweb.com.br/blog/criando-uma-aplicacao-distribuida-com-asp-net-core-e-o-microsoft-orleans) 

     Veja o exemplo de uma aplicação ASP.NET Core acessando os dados de um servidor cluster definido com o Microsoft Orleans.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/09/TYPESCRIPT-400x280.png)  [ Javascript ](https://www.treinaweb.com.br/blog/categoria/javascript) 

     5 anos atrás

    ##  [ Como instalar o TypeScript ](https://www.treinaweb.com.br/blog/como-instalar-o-typescript) 

     Neste artigo veremos como instalar o TypeScript, conhecer o arquivo tsconfig, executar nosso primeiro código no Node.js e no navegador.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/06/NODE-SQUELIZE-MYSQL-400x280.png)  [ Javascript ](https://www.treinaweb.com.br/blog/categoria/javascript) 

     5 anos atrás

    ##  [ Usando Sequelize ORM com Node e Express ](https://www.treinaweb.com.br/blog/usando-sequelize-orm-com-node-e-express) 

     Vamos aprender a configurar uma aplicação com banco de dados MySQL usando Sequelize ORM com Node.js e Express.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/03/criando-interfaces-graficas-no-c-com-gtk-400x280.png)  [ C ](https://www.treinaweb.com.br/blog/categoria/c) 

     6 anos atrás

    ##  [ Criando interfaces gráficas no C com GTK ](https://www.treinaweb.com.br/blog/criando-interfaces-graficas-no-c-com-gtk) 

     Aplicações Desktop ainda são muito utilizadas. Neste artigo aprenda como utilizar o GTK para criar interfaces gráficas no C.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/11/criando-aplicacoes-desktop-multiplataforma-com-asp-net-core-e-electron-net-400x280.png)  [ ASP .NET ](https://www.treinaweb.com.br/blog/categoria/asp-net) 

     6 anos atrás

    ##  [ Criando aplicações desktop multiplataforma com ASP.NET Core e Electron.NET ](https://www.treinaweb.com.br/blog/criando-aplicacoes-desktop-multiplataforma-com-asp-net-core-e-electron-net) 

     Otimize a criação de aplicações desktop reutilizando códigos do ASP.NET Core, com a ajuda do Electron.NET.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/07/03181535/WINDOWS-PHP-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Criando um ambiente de desenvolvimento PHP com WSL ](https://www.treinaweb.com.br/blog/criando-um-ambiente-de-desenvolvimento-php-com-wsl) 

     Nesse artigo vamos criar um ambiente de desenvolvimento PHP completo, com MySQL e Nginx dentro do WSL.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/04/utilizando-arquivos-dotenv-env-em-uma-aplicacao-asp-net-core-400x280.png)  [ C# ](https://www.treinaweb.com.br/blog/categoria/csharp) 

     6 anos atrás

    ##  [ Utilizando arquivos Dotenv (.env) em uma aplicação ASP.NET Core ](https://www.treinaweb.com.br/blog/utilizando-arquivos-dotenv-env-em-uma-aplicacao-asp-net-core) 

     O uso de arquivos .env é quase o padrão de aplicações web, veja como utilizá-los em uma aplicação ASP.NET Core.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/04/05163108/O-QUE-É-PHP-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     8 anos atrás

    ##  [ O que é PHP? ](https://www.treinaweb.com.br/blog/o-que-e-php) 

     Neste artigo veremos o que é PHP e algumas de suas características e vantagens.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/02/17151508/php-elefante-ponte-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Tipos no PHP ](https://www.treinaweb.com.br/blog/tipos-no-php) 

     Nesse post explicamos com exemplos tudo o que você precisa saber sobre definição de tipos em parâmetros e retornos de funções e métodos no PHP, além do novo recurso de propriedades de classes tipadas do PHP 7.4.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/06/14170401/COMANDOS-SYMFONY-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     8 anos atrás

    ##  [ Principais comandos do Symfony CLI ](https://www.treinaweb.com.br/blog/principais-comandos-do-symfony-cli) 

     Nesse artigo falaremos sobre o utilitário de linha de comando symfony. Veremos como realizar a criação de projetos, utilizar o servidor de desenvolvimento, executar comandos da aplicação e outros recursos.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/04/23151556/MÓDULOS-NPM-400x280.png)  [ Node ](https://www.treinaweb.com.br/blog/categoria/node-js) 

     8 anos atrás

    ##  [ Criando módulos globais do NPM ](https://www.treinaweb.com.br/blog/criando-modulos-globais-do-npm) 

     Aprenda a fazer seus próprios módulos globais do NPM e crie ferramentas executadas diretamente do terminal em apenas 5 passos!

     Ler artigo

## Um ano de acesso total para você viver de programação.

 Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro `console.log` ao mercado de trabalho.

- **1 ano** de acesso a **todos os cursos**
- Cursos novos **toda semana**
- Suporte **direto com professores**
- Plano de carreira **personalizado**
- **Certificados digitais** inclusos
- **Aplicativos** para Android e iOS, com **acesso offline**

    **Garantia incondicional de satisfação** 

 Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

### Acesso completo a todos os cursos e dezenas de Formações.

 12 meses 

  Economize R$ 840,00  54% OFF 

 de 12x R$ 129,00 por apenas

 12x  R$ 59,00

 sem juros no cartão de crédito ou R$ 599,00 à vista

  Oferta termina em  **03h 05min 22s**

- Acesso imediato e ilimitado durante 1 ano.
- Plano de carreira personalizado.
- Suporte direto com professores.
- E muito mais!

 [Matricule-se agora](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26)

     [                ](https://www.treinaweb.com.br)

 Escola online de programação, tecnologia e IA.

- [  ](https://www.facebook.com/TreinaWeb/)
- [  ](https://www.instagram.com/treinaweb/)
- [  ](https://www.youtube.com/user/TreinaWeb)
- [  ](https://twitter.com/treinaweb)
- [  ](https://www.linkedin.com/company/treinaweb)
- [  ](https://github.com/treinaweb)

## Inscreva-se em nossa newsletter

Receba lançamentos, promoções e novidades.

   Seu nome     Seu WhatsApp     Seu melhor e-mail   Inscrever-se 

## Cursos

- [ Base para Devs ](https://www.treinaweb.com.br/categoria/base-para-devs)
- [ Front-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-front-end)
- [ Back-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-back-end)
- [ Mobile ](https://www.treinaweb.com.br/categoria/desenvolvimento-mobile)
- [ Bancos de Dados ](https://www.treinaweb.com.br/categoria/bancos-de-dados)
- [ Cloud ](https://www.treinaweb.com.br/categoria/cloud-computing)
- [ IA ](https://www.treinaweb.com.br/categoria/ia)
- [ E mais ](https://www.treinaweb.com.br/categoria/e-mais)
- [ Ver todos os cursos ](https://www.treinaweb.com.br/cursos)

## Conteúdo

- [ Formações ](https://www.treinaweb.com.br/formacoes)
- [ Projetos práticos ](https://www.treinaweb.com.br/projetos-praticos)
- [ Direto ao ponto ](https://www.treinaweb.com.br/direto-ao-ponto)
- [ Planos ](https://www.treinaweb.com.br#assinatura)
- [ Depoimentos ](https://www.treinaweb.com.br#depoimentos)
- [ Comunidade ](https://www.treinaweb.com.br#comunidade)
- [ Corpo docente ](https://www.treinaweb.com.br#docente)

## A empresa

- [ Sobre a TreinaWeb ](https://www.treinaweb.com.br#sobre)
- [ Perguntas frequentes ](https://www.treinaweb.com.br#faq)
- [ Vantagens de estudar na TreinaWeb ](https://www.treinaweb.com.br/vantagens-de-estudar-na-treinaweb)
- [ Cursos para empresas ](https://www.treinaweb.com.br/empresas)
- [ Sugira um novo curso ](https://www.treinaweb.com.br/sugerir-curso)
- [ Trabalhe conosco ](https://www.treinaweb.com.br/trabalhe-conosco)
- [ Artigos ](https://www.treinaweb.com.br/blog)
- [ Desenvolvedores e agentes ](https://www.treinaweb.com.br/developers)
- [ Contato ](https://www.treinaweb.com.br/contato)
- [ Política de privacidade ](https://www.treinaweb.com.br/politica-de-privacidade)
- [ Termos de uso ](https://www.treinaweb.com.br/termos-de-uso)

## Baixe nosso aplicativo

 [   Disponível na **App Store**  ](https://apps.apple.com/us/app/treinaweb/id1322729447) [   Disponível no **Google Play**  ](https://play.google.com/store/apps/details?id=br.com.treinaweb.mobile) 

  Av. Paulista, 1765, Conj 71 e 72 · Bela Vista · São Paulo · SP · 01311-200   © 2004 – 2026 TreinaWeb Tecnologia LTDA · CNPJ 06.156.637/0001-58
