Criando executáveis .jar multiplataforma

por Paulo César M. Jeveaux
Extraído do site :
http://www.portaljava.com

 

 

Java é a linguagem de programação que mais cresce hoje, e porquê ela não faz um arquivo executável (.exe) para rodar os programas* feitos por ela? Bom, está pergunta está sendo muito freqüente, principalmente por pessoas que estão iniciando em Java, ou pessoas que migram para Java, principalmente pessoas acostumadas a usar, C, VB, e Delphi (pascal).
Java é uma linguagem poderosa, pois conta com os princípios polimorfismo, encapsulamento, portabilidade, etc. A, agora sim, portabilidade, isto quer dizer que os códigos Java são portáveis, ou seja, são multi-plataforma e por isso o compilador Java não cria nenhum arquivo executável (.exe), pois isso acabaria com toda a sua portabilidade. Um arquivo fonte Java (.java) é visto da mesma forma por qualquer sistema Operacional, o mesmo arquivo compilado no Windows, pode ser compilado no Linux, no MacOs, no Unix e assim por diante, que sempre irá ter o mesmo resultado e a mesma GUI. Já os conjuntos de bytecodes (.class), que são os arquivos que a Máquina Virtual Java (JVM), usa para rodar os programas Java, também podem ser lidos pela JVM de qualquer Sistema Operacional.
Um arquivo .jar (Executable Jar File), tem o mesmo funcionamento de um arquivo executável .exe, ele esconde a implementação (código) do usuário, e roda o programa sozinho, basta clicar duas vezes sobre o mesmo, que ele dispara o programa. A principal vantagem de arquivo .jar é que ele é portável, como toda a linguagem Java. Isto quer dizer que você pode criar um arquivo executável (.jar) que vai funcionar em qualquer Sistema Operacional, sem você ter que mudar nada, nem mesmo uma linha ou virgula.
*Programa = Aplicativos, applet, servlets.....

Criando Arquivos .jar


Para criar um arquivo executável jar, antes de mais nada é preciso ter o Kit de Desenvolvimento Java (J2SDK) instalado em sua máquina.
Agora basta seguir os passos abaixo:

Este programa feito em Java, será usado como exemplo para criarmos um arquivo executável jar.

package pacoteJar;

 

public class Principal {

        public static void main(String[ ] args) {

               new criarFrame();

        }

}




package pacoteJar;

 

import javax.swing.*;

 

public class criarFrame extends JFrame {

        public criarFrame() {

               super(“Frame de exemplo”);

               setBounds(120,120,250,250);

               show();

        }

}

É preciso ficar atento a um detalhe no código, a primeira linha “package pacoteJar”, isto quer dizer, que os arquivos executáveis pela JVM, os arquivos .class, estarão empacotados na pasta “pacoteJar”. Isto é fundamental para o funcionamento do arquivo executável jar.
Feito isso, vamos para o próximo passo. Agora teremos que criar um arquivo texto (.txt) um diretório acima do pacoteJar. No meu caso a minha estrutura de diretórios está deste jeito:

C:/tutorial
E o pacoteJar está:
C:/tutorial/pacoteJar
O arquivo texto (no meu caso é manifest.txt) deverá ficar no diretório tutorial, ele poderá receber qualquer nome, porem seu conteúdo deverá ser o seguinte:

Main-Class: pacoteJar.Principal
Name: pacoteJar/Principal.class
Java-Bean: True

Na primeira linha, “Main-Class: pacoteJar.Principal está a indicação de onde está o método main(String[ ] args), que deverá ser chamado pela JVM.
Na segunda linha, “Name: pacoteJar/Principal.class” está a indicação de qual arquivo .class, será executado.
Na terceira linha, “Java-Bean: true” é indicado a JVM que a opção Bean será ativada.

A corretude deste arquivo é fundamental para o correto funcionamento do seu arquivo executável jar.

Agora vamos ao próximo passo. A criação propriamente dita do arquivo executável jar. Para criarmos o arquivo executável jar, é preciso que o diretório “bin” do J2SDK esteja no PATH do Sistema Operacional. Se tudo estiver correto, então vamos lá.
jar cfm NOME_DO_ARQUIVO.jar manifest.txt pacoteJar.*.* Está a palavra mágica que o arquivo executável jar, mas vale lembrar que um detalhe importante não pode ser esquecido, a estrutura de diretórios. Olhe os passos abaixo:

* Abra o prompt de comandos (DOS, bash, etc)
* Usarei o Command do DOS como exemplo
* Depois de aberto ficará assim:

# c:/

# cd tutorial

# c:/tutorial

# jar cfm NOME_DO_ARQUIVO.jar manifest.txt pacoteJar*.*

Vale lembrar que dentro do diretório tutorial está o diretório que é o “pacoteJar”.
Depois de feito isso, o arquivo será gerado no diretório tutorial. Ele funciona como um arquivo executável .exe, com a vantagem e de ser portável e a desvantagem que só funciona se o J2SDK estiver instalado na máquina.

Executando arquivos jar



Para executar um arquivo jar, você pode faze-lo com um clique duplo do mouse, ou pelo prompt ou shell:

# c:/tutorial

# java -jar NOME_DO_ARQUIVO.jar