Quem sou eu

Minha foto
Joinville, SC, Brazil
Visite meu currículo: http://br.linkedin.com/in/douglasdutra

Rádio Estilo 7

Rádio Allegro - Clássicas

Minha lista de blogs

sexta-feira, 27 de junho de 2008

[EAD] CRIANDO JAR EM JAVA

Aqui está um programa muito simples, principalmente para demonstrar como se fazer um JAR. Os exemplos foram escritos para o Windows, o que só importa em relação ao separador de diretorios. Esse programa, ao inves de escrever o batido "Hello World", irá escrever os parametros da linha de chamada. Para dificultar um pouco usaremos o package br.com.javafree.exemplo.


public class Main {

public static void main(String[] args) {
System.out.println(args.length + " argumentos:");
for (int i = 0; i < args.length; i++)
System.out.println(" " + i + ": '" + args[i] + "'");
}
}

agora compilamos o Main para obter o Main.class:

C:\java\exmplJar> javac caminhoCompletoDaClasse\Main.java

e podemos testar:

C:\java\exmplJar> java nomeDoPacoteOndeAClasseEstiver.Main 11 22 33

Ate aqui não tivemos nada a fazer em relação ao JAR, o primeiro passo nesse sentido é dizer qual a classe principal a ser executada (metodo main) ao rodar o JAR. Para isso criamos um arquivo texto com o nome completo da classe principal. Esse arquivo pode ter qualquer nome e nao importa o diretorio onde for criado e irá ser incluído no manifesto do arquivo JAR.

Criamos um arquivo chamado manifest.txt no diretorio principal do projeto contendo a seguinte linha:

Main-Class: nomeDoPacoteOndeAClasseEstiver.Main

Essa linha diz qual a classe que contém o método main a ser executado.
Existem outras chaves/valores que podem ser incluidos no manifesto, mais detalhes na documentacao da SUN http://java.sun.com/j2se/1.5.0/docs/guide/jar/index.html ou do comando JAR.

IMPORTANTE: sempre terminar o manifesto com uma linha em branco.

Agora podemos gerar o JAR que chamaremos de args.jar:

C:\java\exmplJar> jar -cvfm args.jar manifest.txt caminhoCompleto\*.class

As opcoes (o menos é opcional) tem o seguinte significado:

c = create, criar um novo JAR
v = verbose, gerar informações mais detalhadas na saida padrão
f = file, fornecer o nome do arquivo JAR (1° argumento apos as opcoes = nome do arquivo JAR
m = manifest, incluir o conteudo de um arquivo no manifesto (2° argumento = nome do arquivo)
os argumentos restantes (3° no exemplo) sao os arquivos a serem incluidos no JAR

Feito o JAR, podemos testa-lo:

C:\java\exmplJar> java -jar args.jar 44 55 66

É isso... agora podemos distribuir o JAR (ou mudar ele de diretorio para testar)
Alguns detalhes: Também pode-se incluir os arquivos fonte (.java), ou quaisquer outros arquivos no JAR.

C:\java\exmplJar> jar -cvfm args.jar manifest.txt br\com\javafree\exemplo\*.class br\com\javafree\exemplo\*.java

O arquivo JAR nada mais é que um arquivo comprimido no formato ZIP, quem necessitar ou for curioso pode abrí-lo com o WinZIP por exemplo. Outro maneira de ver o conteúdo, é usar o comando jar:

C:\java\exmplJar> jar -tvf args.jar
(t = type[listar]; v = verbose[mais informações]; e f = file[fornecer nome do jar])

Podemos ate extrair os arquivos do JAR usando

C:\java\exmplJar\tmp> jar -xvf ..\args.jar(x = eXtract)

Ou, vice-versa, use o comando jar para criar/examinar/descompactar arquivos .zip

Abraços!