Percebi que muitos desenvolvedores precisam, ou já precisaram, distribuir suas aplicações Java de forma que os usuários de Windows pudessem iniciá-las naturalmente, sem a necessidade de chamar o comando java -jar <arquivo jar> ou executar um arquivo .BAT.

Eu, que também já passei por isso, encontrei um solução fácil e com muitos recursos: JSmooth.

Este programinha possibilita que você “transforme” seu JAR em um executável (EXE), mas claro, ainda sim você precisará ter o JVM instalado no micro que rodará o executável.

Aqui só destacarei as configurações que considero relevantes, então vamos ao que interessa!


Baixe o JSmooth em http://sourceforge.net/projects/jsmooth/files/;

Após instalá-lo (ou descompactá-lo, depende do arquivo que você baixou) execute-o;

No menu lateral, clique em “Skeleton“;

1

No “Skeleton Selection” você informa como a aplicação será executada, aqui selecionaremos Window Wrapper.

No “Skeleton Properties” você define uma mensagem caso o usuário não tenha o JVM instalador (Message) e onde ele poderá baixá-lo (URL).

Launch java app in the exe process” indica se o JAR será executado no mesmo processo do EXE, aparecendo somente o executável no Gerenciador de Tarefas do Windows, caso contrário também será o processo javaw.exe.

Single Instance” define se você ser aberto mais de uma instância.

Debug Console” executa o EXE em uma janela do prompt de comando, exibindo os possíveis Stacktraces gerados pela aplicação.

Agora clique em “Executable

2

Em “Executable Settings” você informa onde o EXE será gerado (“Executable Binary“), o ícone do EXE (“Executable Icon“) e qual será o diretório de execução da aplicação.

Clique em “Application

3

Primeiro, clique no ícone 7 e selecione o JAR que contém a classe principal (que contém o método main).

Em seguida, selecione a classe no campo “Main Class” clicando no botão 8.

O campo “Application arguments” você passa os parâmetros necessário para a sua classe.

Embedded JAR” possibilita que você integre seu JAR no EXE, ou seja, não será necessário ter os dois arquivos, pois o EXE descompactará o JAR a cada execução.

Agora, clique em “JVM Selection“.

4

Aqui você pode definir qual versão, mínima (“Minimum JVM Version“) e máxima (“Maximum JVM Version“), da virtual machine  rodará sua aplicação.

O”JVM Search Sequence” indica a ordem de busca do arquivo javaw.exe, neste caso ele procurará primeiro no registro, depois no diretório informado na variável de ambiente “JAVA_HOME” e assim por diante.

E então clique em “JVM Configuration

5

Aqui você informa a quantidade máxima de memória que sua aplicação poderá usar (“Maximum Memory“), quanta memória será alocada para sua aplicação assim que ela iniciar (“Initial Memory Allocation“) e os argumentos que será passado à JVM para sua aplicação.

Até este ponto você somente configurou o JSmooth, mas ainda não temos o EXE. Para isso, clique no botão 6, caso você ainda não tenha salvo o projeto será aberta uma janela para escolher o local de salvamento do arquivo. Feito isso, o EXE será gerado no diretório indicado no campo “Executable Binary” da tela “Executable“.

Agora é só dar um duplo clique no arquivo EXE e aplicação iniciará!

Para mais informações acessem http://jsmooth.sourceforge.net/

Espero que tenham gostado, comentem à vontade!

Até mais! :)