Desenvolvimento - Java
JAR Files: os "EXEs" de aplicações Java
A sigla JAR significa Java ARchive e é o formato criado pela Sun Microsystems para distribuir aplicações e bibliotecas na plataforma Java...
por Eric C M OliveiraA sigla JAR significa Java ARchive e é o formato criado pela Sun Microsystems para distribuir aplicações e bibliotecas na plataforma Java. O formato é muito semelhante a compactação de arquivos de aplicativos do tipo "ZIP". Assim sendo, em um arquivo com a extensão .JAR pode-se incluir classes Java, imagens, etc.
Esse tipo de formato está presente na plataforma desde sua versão 1.1 do ambiente de desenvolvimento. A própria tecnologia é distribuída em arquivos do tipo JAR. Na figura abaixo, pode-se observar esses arquivos no diretório lib do seu JDK:
Os arquivos jar se difundiram graças ao uso e distribuição de applets. Hoje, frameworks famosos como JUnit e Struts são distribuídos nesse formato. Além disso, a própria ferramenta de distribuição Java Web Start é baseada nesse tipo de arquivo e interage com esse formato.
Na especificação desse tipo de formato JAR, é obrigatório a presença do arquivo do tipo manifesto em um diretório META-INF. Esse arquivo pode definir dados do seu arquivo JAR, como versão, cabeçalho, etc.
O formato JAR também ganhou popularidade ao ser conhecido como o executável de Java. Para tal, isto é, tornar seu JAR como um executável, deve-se adicionar o atributo Main-Class ao manifesto. O valor desse atributo deve ser o nome completo da classe, que contenha o método public staticvoid main(String[] args), isto é, é necessário informar qual a porta de entrada de sua aplicação.
Com esse procedimento, um duplo clique em um JAR que obedeça a essas condições acima, faz com que tenhamos a impressão de que nosso JAR tem características semelhantes a EXEs.
Para a criação de arquivos JAR, existe a ferramenta JAR, incluída no J2SDK. Existem vários comandos e opções de uso, mas o mais conhecido é jar cf arquivo.jar, que efetivamente cria um arquivo do tipo jar.
Podemos concluir que entre as vantagens desse tipo de arquivo, temos a facilidade de transmissão de conteúdo via web ou rede, de segurança, com possibilidade de assinatura digital, controle de versão do componente, além da independência de plataforma.
Refêrencias:
http://java.sun.com/products/javawebstart/demos.html
http://java.sun.com/developer/Books/javaprogramming/JAR/index.html