Converter jar para exe

Converter JAR para EXE

Crie um launcher para Windows ou um instalador autocontido a partir de um Java JAR.

Converter ficheiros JAR online

Ainda não temos um conversor online dedicado para JAR para EXE, mas pode converter ficheiros JAR online para estes formatos:

Como converter jar para exe arquivo

  • Arquivos

Um usuário do Windows pode precisar de um EXE quando um aplicativo Java deve ser iniciado com um clique duplo ou distribuído para pessoas que não têm experiência com a linha de comando do Java. O resultado geralmente é um inicializador ou instalador do Windows, e não uma conversão do bytecode Java em código de máquina nativo.

O que é o formato JAR

Um JAR (Java Archive) é um pacote baseado em ZIP que contém arquivos .class compilados, bibliotecas de dependências, imagens, arquivos de configuração e metadados. Compiladores Java, IDEs como IntelliJ IDEA e Eclipse e ferramentas de build como Maven e Gradle criam arquivos JAR.

Um JAR executável tem uma entrada de manifesto como Main-Class: com.example.Main e pode ser iniciado com java -jar app.jar. O computador precisa de um runtime Java compatível; um JDK também fornece o runtime necessário, enquanto um JRE independente pode ser suficiente para distribuições Java mais antigas. Alguns JARs são bibliotecas, e não aplicativos, e não têm um entry point para iniciar.

O que é o formato EXE

Um EXE é um arquivo Windows Portable Executable usado para aplicativos, inicializadores, instaladores e serviços. Um inicializador EXE pode oferecer inicialização com clique duplo, um ícone, informações de versão do Windows, tratamento da linha de comando, verificações de versão do Java e uma configuração de janela do console.

Um EXE wrapper ainda inicia o programa Java por meio de uma JVM. Uma imagem de aplicativo ou um instalador pode incluir um runtime Java privado, para que os usuários não precisem instalar o Java separadamente. A saída continua específica do Windows e não é executada nativamente no macOS ou Linux.

Como criar um EXE a partir de um JAR

Use Launch4j para um inicializador leve

  1. Instale o Launch4j a partir da distribuição oficial do projeto e verifique primeiro o aplicativo com java -jar app.jar.
  2. Abra o Launch4j e defina Basic → Output file como um caminho, por exemplo, dist\MyApp.exe.
  3. Defina Basic → Jar como app.jar. Se o JAR não tiver uma entrada de manifesto Main-Class, especifique o entry point em Basic → Main class.
  4. Em JRE, defina o intervalo de versões do Java necessário. Para distribuir um runtime privado, defina JRE → Bundled JRE path como um diretório, por exemplo, runtime, e forneça esse diretório ao lado do EXE.
  5. Opcionalmente, escolha um arquivo .ico em Header → Icon, adicione informações de versão e selecione o modo de console apropriado.
  6. Compile o EXE e teste-o em um sistema Windows limpo. Sem um runtime incluído, esse sistema deverá ter um runtime Java compatível instalado.

O Launch4j cria um inicializador; ele não corrige dependências ausentes, não transforma bytecode Java em código nativo e não fornece automaticamente um runtime completo. Os caminhos relativos e o diretório do runtime incluído devem corresponder ao layout distribuído aos usuários.

Use jpackage para um aplicativo autocontido

jpackage está incluído nas versões modernas do JDK e cria imagens de aplicativos e instaladores do Windows. Ele é preferível quando o aplicativo deve carregar seu próprio runtime e metadados de instalação.

  1. Compile e teste o aplicativo e, em seguida, coloque o JAR principal e os JARs de dependências necessários em um diretório de entrada, como dist. Uma tarefa de distribuição do Maven ou Gradle pode produzir esse diretório.
  2. Confirme a classe principal. Use a entrada do manifesto quando disponível ou forneça-a explicitamente com --main-class.
  3. Execute o empacotamento no Windows. Tipos de instalador como exe e msi exigem os pré-requisitos de empacotamento do Windows compatíveis com a versão do JDK, normalmente o WiX; uma imagem de aplicativo não exige uma ferramenta de instalação.
  4. Execute um comando semelhante a:
    jpackage --type exe --input dist --name MyApp --main-jar app.jar --main-class com.example.Main --dest release --win-shortcut --win-menu
  5. Use --icon app.ico para um ícone e --app-version 1.0.0 para a versão exibida. Teste tanto a instalação quanto a inicialização em uma máquina Windows sem o JDK de desenvolvimento.

Para obter um diretório de aplicativo portátil em vez de um instalador, use --type app-image. A imagem resultante inclui um runtime privado e normalmente é muito maior do que um wrapper do Launch4j.

Limitações de compatibilidade e qualidade

  • O aplicativo precisa de um entry point válido, todas as dependências necessárias e módulos Java compatíveis. Um inicializador não pode corrigir classes ausentes, caminhos de recursos inválidos ou uma versão incompatível do Java.
  • Teste com a versão do Java e a arquitetura de CPU destinadas aos usuários. JNI ou outras bibliotecas nativas podem exigir builds separados de 32 e 64 bits e binários específicos do Windows.
  • Incluir um runtime aumenta o tamanho da distribuição, mas elimina a dependência de um runtime Java instalado separadamente. Verifique a licença do fornecedor do runtime e a política de atualizações de segurança antes de redistribuí-lo.
  • EXEs e instaladores recém-compilados e não assinados podem acionar o Microsoft Defender ou outros avisos de segurança. Assinar o inicializador e o instalador com um certificado apropriado reduz os avisos, mas não garante que eles estarão ausentes.
  • Para obter um executável realmente nativo, em vez de um inicializador de JVM, use uma ferramenta como GraalVM Native Image quando o aplicativo for compatível com ela. Reflection, carregamento dinâmico de classes, JNI e alguns recursos de frameworks podem exigir configuração ou não funcionar.

Serviços de conversão online

Não existe um serviço online genérico confiável capaz de inferir o entry point, as dependências, o runtime, as bibliotecas nativas e os requisitos de empacotamento do Windows de um aplicativo Java a partir de um JAR enviado. Sites de conversão de arquivos podem renomear ou descompactar um JAR, mas isso não cria um EXE funcional. Use ferramentas locais como Launch4j ou jpackage para software proprietário ou executável; o upload do JAR também pode expor código-fonte, credenciais incorporadas ou outros dados confidenciais.

Comparação de formato: JAR vs EXE

Como os formatos JAR e EXE se comparam nas propriedades mais importantes para esta conversão.

Comparação dos formatos de arquivo JAR e EXE
Propriedade .JAR Java Archive .EXE Portable Executable
Padrão aberto Sim Não
Compressão Ambos Sem compressão
Tamanho típico do arquivo Médio Grande
Abre num navegador web Não Não
Edição posterior Limitado Não editável diretamente
Suporte a metadados Básico Extenso
Legível em texto simples Não Não
Mais usado para Incorporação em aplicações Incorporação em aplicações
Introduzido 1996 1993
Desenvolvedor Oracle (originally Sun Microsystems) Microsoft
Tipo MIME application/java-archive

Outras conversões de arquivo .jar

Conversão inversa

Converter para .exe
de outros formatos

Compartilhar nas redes sociais: