Gerar executáveis em java! JAR e EXE
Autor: Reinaldo Elias | Publicado: 2011-11-20T01:45:00-02:00

Sim, você não leu errado, é exatamente isso o que está escrito.Mas como? Por que?? Pra que??? Você deve estar se perguntando! E eu respondo: “Simplesmente por que eu quero” ou melhor ainda “Estou acostumado com programas executáveis” (não é o meu caso), ou por qualquer que seja o motivo. Antes de chegar ao X da questão, deixe-me falar algumas coisas e sugerir outras. Primeiramente gostaria de comentar sobre a dificuldade que temos em apenas tocar neste assunto (gerar um executável em java) em comunidades próprias dessa linguagem, porque Java não foi criado pra este propósito, e blá-blá-blá, e o pessoal simplesmente não dá nenhuma informação, apenas vem com críticas destrutivas. Realmente, java não foi criado para este propósito, e gerando um arquivo *.EXE você perde a portabilidade e etç, mas não me importo eu quero gerar um executável! Opções! E por que escolhê-las:  JARVocê conhece o JAR? É um coleguinha do RAR e do ZIP.A linguagem Java dispõe de uma opção muito interessante, largamente utilizada na distribuição de programas e bibliotecas, e consiste simplesmente em um grupo de classes compactados, da mesma forma como você compacta seus arquivos em um ZIP ou um RAR, você pode compactar suas classes em um JAR. Claro que não dá pra usar o Winzip ou o Winrar pra gerar um arquivo JAR, mas você pode utilizar esses programas ou qualquer outro do tipo paraler e descompactar o JAR. Como fazer? Muito simples.A primeira opção é utilizando uma IDE, como Eclipse ou NetBeans. No caso do eclipse, você clica com o botão direito em cima da pastinha raiz do seu projeto, vai até Exportar e escolhe a opção Java Arquive File (JAR), segue algumas orientações na tela como escolher onde o arquivo será salvo e o nome do arquivo, clica em um botãozinho e pronto, seu jar está criado, mas digamos que você não use uma IDE, você criou todas as suas 999 classes na mão, utilizando o notepad! Como fazer? Se você é um guerreiro, e quer continuar lutando, pode utilizar o console para criar seu jar, mas é um pouco mais dificil que utilizando uma IDE. Primeiro você vai precisar escolher qual é sua classe principal (Main class), não importa se seu projeto é pequeno, grande ou gigante, com certeza ele tem uma classe principal, que deve ser iniciada primeiro.Agora que você sabe o nome da sua classe principal, abra o notepad e escreva os seguintes dizeres.  Main-Class: &lt;sua classe&gt; Muito importante, aliás, extremamente importante, pule uma linha quando terminar de escrever isso ai acima, senão nada funciona. Esse arquivo será o MANIFEST, o jar utiliza isso pra saber o que fazer quando alguem o executar. Feito isso, salve esse arquivo em qualquer lugar, eu não me importo, apenas salve com um nome facil de decorar. Agora vá até o console e digite:  jar cmvf &lt;&lt;NOME-DO-JAR&gt;&gt;.jar &lt;&lt;SEU-ARQUIVO-MANIFEST&gt;&gt;.txt &lt;&lt;A PASTA DA SUA APLICAÇÃO&gt;&gt; Calma, eu explico.O que está em vermelho é um código que precisa ser digitado para criar o jar, da mesma forma como você digitaJAVAC para compilar uma classe, esses dois (jar cmvf) servem pra “compilar” um jar.Na parte &lt;&lt;NOME-DO-JAR&gt;&gt;.jar, você deve sobstituir obviamente &lt;&lt;NOME-DO-JAR&gt;&gt; pelo nome que você quer dar ao jar quando este for compilado, por exemplo “minhaAplicacao.jar”.Em &lt;&lt;SEU-ARQUIVO-MANIFEST&gt;&gt;.txt você vai trocar o &lt;&lt;SEU-ARQUIVO-MANIFEST&gt;&gt; pelo nome do arquivo que você criou, que contém o nome da sua classe principal (você lembra o nome do arquivo “né”?).E por ultimo, você troca &lt;&lt;A PASTA DA SUA APLICAÇÃO&gt;&gt; pelo caminho inteiro até a pasta raiz onde seus arquivos .CLASS estão. Pronto, você criou um jar! Esse arquivo jar, para ser executado precisa que alguem vá até o console e digite:  java –jar programa.jar Não dá para apenas clicar duas vezes e abrir, quer dizer, dá sim, você tem que configurar o computador da vítima, ou melhor, do usuário, para associar a extensão .jar ao arquivo java.exe ou javaw.exe, da pra fazer esquemas assim alterando chaves no registro, mas isso é outra história. Formas de utilizar/distribuir. Você sabe que pra executar algum programa feito em java, é preciso que o usuário tenha alguma JRE instalada no computador “né”? Se o usuário não a tiver, seu programa não vai rodar.Se você não quiser fazer o povo baixar e instalar a jre pra utilizar seu programa, você pode embutir uma jre junto aos seus arquivos e entregar tudo pro usuário.Ficaria mais ou menos assim, você baixa a JRE, separa as coisas inúteis que vem junto com ela (tipo exemplos, programas pra rodar applet, documentos, etç) deixa só o necessário pra tentar reduzir o tamanho final da pasta. Depois você coloca seu JAR dentro das pastas da JRE, em qualquer lugar, isso não me importa em nada, apenas escolha um lugar e joga o jar lá.Depois você cria um arquivo BAT ou se você souber programar em C, VB, Delphi ou qualquer outra coisa, cria um arquivo que execute o comando “java –jar programa.jar”, porém com uma diferença, você não vai mandar o console executar o “JAVA” que está ou não instalado na máquina do usuário, você vai mandar o console executar o programaJAVA.EXE ou JAVAW.EXE que está dentro da pasta BIN da JRE e passar como parametro o nome do seu jar. Pronto, basta enviar a pasta inteira pro seu usuário e mandar clicar duas vezes no arquivinho BAT que você fez. Outra dica legal é alterar o nome do programa JAVA.EXE para qualquer coisa parecida com o nome do seu programa, é claro que se você alterar o nome de JAVA.EXE para XPTO.EXE, você tem que chamar XPTO –jar programa.jar. Se você fizer isso, no gerenciador de tarefas vai aparecer o nome do seu programa e não “java.exe”. EXEBem, se mesmo com as dicas acima você ainda quiser criar um arquivo EXE vou explicar aqui como faz, mas funciona basicamente da mesma forma como acima. Existem duas formas, a primeira é você pegar um programa que Cria Instaladores, e configurar o instalador pra fazer tudo o que foi dito acima (associar arquivos jar ao programa java.exe ou javaw.exe, copiar o jar para algum lugar, colocar um atalho na area de trabalho, etç, etç, etç), ou: A segunda forma, utilizar o programa JSmooth. Para utilizar o JSMooth, você precisa ter um jar criado, então siga um dos passos acima primeiro, depois abra o JSmooth, fala onde está seu JAR, onde está a JRE (se quiser que a jre vá junto com o programa, se não quiser o usuário terá que ter a jre instalada), escolhe o nome e onde salvar o arquivo, clica no botãozinho mágico e “voalá” seu EXE está criado. Não vou explicar detalhadamente como se utiliza esse programa, por que eles já fizeram um tutorial extremamente detalhado que nem da vontade de criar outro tipo de explicação, você pode acessar o tutorial do programa nesse link. Para baixar o programinha mágico, tenta acessar esse site aqui, o site oficial do programa.Se por qualquer motivo eles pararem de disponibilizar o programa, como aconteceu com o plugin da sysdeo, eu coloquei em um servidor próprio a ultima versão disponível até março-2011, a versão 0.9.9.7, que pode ser baixadaneste link, mas recomendo ir no site oficial para baixar o programa mais atualizado. Boa sorte!