15 de setembro de 2011

Como criar ficheiros .jar


Como sabemos, uma boa forma de programar envolve classes, que por sua vez contêm métodos que realizam determinadas acções. Depois da criação de uma aplicação, ficamos com um conjunto de ficheiros (classes), bibliotecas, conectores, que são parte da aplicação. No entanto, o interpretador do Java pode executar uma aplicação directamente de um ficheiro jar, se tiver indicações de qual a classe que contem o método main.

Um ficheiro Jar (Java ARchive) permite guardar de forma compactada um conjunto de classes java. Se esse conjunto contiver uma classe com o método main poderá ser executado como um programa independente, ou seja pode funcionar como um ficheiro executável. Para tal será necessário que o ficheiro .jar contenha um ficheiro adicional, por exemplo manifest.mf, onde será especificada qual a classe que contém o main.Os ficheiros .jar,são baseados no popular formato .zip.

Vamos mostrar alguns comandos importantes para criar, ver e executar ficheiros .jar

Criar ficheiro .jar


jar cf NOME_FICHEIRO_JAR FICHEIROS_A_INCLUIR
ex: jar cf MyApp1.jar C:\JavaProject\MyApp
A letra c indica criação do ficheiro jar
A letra f indica que o próximo argumento é o nome do ficheiro jar a criar.

Ver conteúdo de um ficheiro JAR


jar tf JAR_NOME_FICHEIRO
ex: jar tf MyApp1.jar
A letra t indica que deve listar a tabela do conteúdo (table of contents).

Ver conteúdo de um ficheiro JAR (com detalhe)


jar tvf JAR_NOME_FICHEIRO
ex. jar tvf MyApp1.jar
A letra v indica que deve produzir uma saída “verbose” – inclui tamanho e data de criação dos ficheiros.

Extrair  conteúdo de um ficheiro JAR


jar xf JAR_NOME_FICHEIRO
ex: jar xf MyApp1.jar
A letra x indica que vamos extrair o conteúdo

Extrair um ficheiro específico


jar xf JAR_NOME_FICHEIRO FICHEIROS_A_INCLUIR
ex. jar xf MyApp1.jar Test1.class


Actualização de um .jar


jar uf NOME_FICHEIRO_JAR FICHEIROS_A_INCLUIR
ex: jar uf MyApp1.jar Test1.class
A letra x indica que vamos realizar um update

Actualização de um .jar


java -jar JAR_NOME_FICHEIRO
ex. java -jar MyApp.jar


Criar um JAR executável


No caso de pretendermos que o .jar se torne “executável”, como já referido, temos de indicar qual a classe que contém o método main. Para isso, criamos um ficheiro auxiliar, ex. MANIFEST.MF, e indicamos qual a classe que possui o método main, apenas o nome. Além disso, podemos ainda incluir conectores, como por exemplo a indicação do conector mysql, outros ficheiros .jar, etc.


Exemplo:


Manifest-Version: 1.0
Main-Class: MyMainClass

Neste exemplo, a classe tem o nome MyMainClass. Para criarmos o ficheiro .jar executável, basta agora inserir o seguinte comando:

jar cvfm MyApp.jar MANIFEST.MF FICHEIROS_A_INCLUIR