Sexta, 26 de Abril de 2024




 O Arquivo .JAR

O arquivo .JAR (Java ARchive) é um arquivo tipo binário que contém um ou mais arquivos compactados, tal qual um arquivo .ZIP.

A semelhança com o arquivo .ZIP é tanta que um arquivo .JAR pode ser renomeado para .ZIP e ser aberto normalmente em algum programa que aceite este tipo de arquivo.


Criação do arquivo

O arquivo .JAR é criado normalmente com o programa jar (ou jar.exe), disponível nos pacotes de software java® (Caso queira instalar este software, clique no link no final desta página e siga as instruções).

A sintaxe mais comum para criar um arquivo é semelhante a sintaxe do programa tar do linux/unix:


  jar cvf arquivo.jar arquivos_a_compactar


Este comando irá criar o arquivo.jar indicado, colocando dentro dele os arquivos_a_compactar indicados, que poderão ser vários, separados por espaços, ou ainda com caracteres genéricos, como *.txt, por exemplo. Os subdiretórios e arquivos relacionados serão incluídos.


O MANIFEST.MF

Note que dentro do arquivo .JAR será criado um subdiretório META-INF e dentro dele um arquivo MANIFEST.MF. Este arquivo é uma característica do arquivo .JAR e serve para indentificá-lo. Um arquivo MANIFEST.MF padrão, gerado com o comando acima tem o formato:


Manifest-Version: 1.0
Created-By: 1.5.0_11 (Sun Microsystems Inc.)


Opcionalmente o programa jar pode deixar de gerar o MANIFEST.MF. Para isso, bastar acrescentar o parâmetro "M" (maiúsculo) na linha de comando, como abaixo:


  jar cvfM arquivo.jar arquivos_a_compactar


Isso é útil quando se quer compactar apenas os arquivos desejados ou se quer colocar um MANIFEST.MF próprio, que já esteja montado num subdiretório META-INF, a partir do local de disparo do programa.

Existem vários parâmetros que podem ser definidos dentro do MANIFEST.MF. Abaixo estão descritos os dois principais:


  • O parâmetro Main-Class

    Um arquivo .JAR pode conter um programa feito em java e pode ser executável. Para isso o arquivo MANIFEST.MF do pacote deverá indicar qual o package interno (subdiretório) / classe contém o método run de partida. Isso é feito através do parâmetro Main-Class. Por exemplo, o programa GetHttp utiliza o seguinte arquivo:


    Manifest-Version: 1.0
    Main-Class: getHttp.GetHttp


    Desta forma o usuário poderá disparar o programa interno do arquivo .JAR através do comando:


      java -jar arquivo.jar [parâmetros]


    Para maiores informações sobre este comando veja a publicação Atalho para programa Java.


  • O parâmetro Class-Path

    O programa interno do arquivo .JAR pode precisar de bibliotecas adicionais (outros arquivos .JAR). Para isso o arquivo MANIFEST.MF deverá indicar a localização dessas bibliotecas no parâmetro Class-Path. Por exemplo, o programa TaskCtrl, precisa da lib jna.jar. Deixando-a instalada no mesmo diretório do .JAR principal, ele utiliza o seguinte arquivo de MANIFEST.MF:


    Manifest-Version: 1.0
    Class-Path: jna.jar
    Main-Class: taskCtrl.TaskCtrl



    Expansão do arquivo

    Para expandir um arquivo .JAR, utiliza-se o comando:


      jar xvf arquivo.jar



    Outros tipos de .JAR

    Existem outros tipos de arquivos .JAR, que são montados da mesma forma, porém tem extensão diferente, como o .WAR e o .EAR. São arquivos utilizados pelo J2EE e podem ser tratados como arquivos .JAR, pois têm o mesmo formato.

    Os arquivos .APK dos aplicativos para Android® também tem um formato parecido e podem abertos da mesma forma.


    ¤ Links Relacionados:
    - Como criar um atalho para programa Java
    - Veja nossos Utilitários em Java®
    - Utilitário para Criar Atalho a arquivos .jar
    Obtenha o Software Java