JAR Arquivo Java ARchive

JAR significa Java ARchive. Arquivos .jar são geralmente usados para agrupar todos os arquivos de uma determinada aplicação Java. A ferramenta jar é uma aplicação que combina múltiplos arquivos dentro de um simples arquivo .jar. JAR (Java ARchive) é um arquivo compactado usado para distribuir um conjunto de classes Java, um aplicativo java, ou outros itens como imagens, XMLs, entre outros. É usado para armazenar classes compiladas e metadados associados que podem constituir um programa.

Java ARchive

Arquivos jar podem ser criados e extraídos usando o utilitário “jar” da JDK. Ferramentas de compressão (como o Winzip) também podem criar arquivos .jar.

Um arquivo jar possui um arquivo manifesto localizado no caminho META-INF/MANIFEST.MF. As entradas do arquivo manifesto determinam como o arquivo jar será usado. Arquivos jar que têm a intenção de serem executáveis terão uma de suas classes especificadas como a classe Main “principal”.

As aplicações contidas nestes arquivos são tipicamente executadas com um comando similar a:
java -jar exemplo.jar

Java ARchive: Criando um arquivo jar

Para criar um arquivo .jar basta digitar o seguinte comando:


>jar cvf classes.jar Foo.class Bar.class

O que esse comando faz é criar um arquivo chamado classes.jar contendo Foo.class e Bar.class. Os parâmetros passados, cvf significam:

-c = Crie um novo arquivo;
-v = Gere um output sobre o que está acontecendo;
-f = Especifique o nome do arquivo.

Java ARchive: “Descompactando” um arquivo jar

Os arquivos jar usam um padrão de compressão baseado no formato de compressão zip de modo que qualquer aplicativo que suporte esse formato pode abrir e manipular um .jar. Entretanto, você pode realizar essas operações usando linhas de comando também. Para extrair arquivos de um jar basta digitar:
>jar xvf arquivo.jar

Para extrair arquivos específicos o comando é o seguinte:
>jar xvf arquivo a Extrair arquivo.jar

Executando um jar

Ao contrario do que possa se pensar de imediato, arquivos jar são executados através do comando java e não do comando jar. Se o manifest estiver corretamente definido para executar o arquivo, ou seja, se ele contem uma indicação de qual é a classe principal da aplicação, basta digitar o seguinte comando para executar o jar:
>java -jar arquivo.jar

Outros parâmetros do comando jar.


c - Criar um novo arquivo
t - Lista o conteúdo de um arquivo jar
x file - extrai todos os arquivos ou apenas os
especificados. Se file é omitido, todos os arquivos são extraídos. Se não, somente os arquivo(s) especificado(s) são extraído(s).
v - Gera o verbose para o comando que está sendo executado.
f - Argumento que indica qual arquivo jar está sendo manipulado. Num comando de criação, indica o nome do arquivo que está sendo criado e, no caso de listar ou extrair, indica que arquivo será listado ou extraído.
m - indica o arquivo manifest que será inserido no jar
O - Indica que se deve apenas armazenar os arquivos sem compressão.
M - Para não criar um manifest default.
u - Atualiza um arquivo jar. Ex.: jar uf arquivo.jar Arquivo.class