sábado, 28 de novembro de 2009

Dica 4: Empacotando uma aplicação em um Jar

Uma das dificuldades que os programadores de linguagem RAD tem quando vem para o Java é com relação ao tal do 'executável'. Quando você cria um programa em Java não é gerado um arquivo .exe como na maioria das linguagens. Em java dizemos que uma classe é executável se ela tiver um método main ou ainda se ela for um applet o método init. O processo de criação de executável se chama: empacotamento da aplicação. Que é exatamente colocar a aplicação dentro de um arquivo de extensão .jar. Nesta dicas vamos ver como fazer para empacotar uma aplicação Java.
Vamos supor que nossas classes estão em uma pasta chamada HelloWorld e nela temos uma classe chamada HelloWorld.java e seu bytecode compilado HelloWorld.class. Esta classe simplesmente exibe uma mensagem de boas vindas pro usuário.
Outra coisa importante para um arquivo .jar é o arquivo de manifesto. Esse arquivo vai fornecer informações importantes para a execução do programa como classpath e também a main class do seu programa. A partir do Java 6 temos um comando novo onde podemos informar diretamente no prompt qual é a main class da aplicação, basta então digitarmos isso:

jar cvfe HelloWorld.jar HelloWorld .*class

Se você viu algo como:

added manifest
adding: HelloWorld.class(in = 395) (out= 292)(deflated 26%)

Significa que deu tudo certo. Para executar o arquivo bastar dar um clique duplo nele (caso o Java esteja configurando corretamente no seu classpath do SO) ou pode ainda usar o comando abaixo que tem o mesmo resultado:

java -jar HelloWorld.jar

Você pode ver mais informações sobre arquivos .jar neste link. Um abraço e até a próxima dica.


domingo, 8 de novembro de 2009

Dica 3: Descompactando Arquivos Zip

Essa dica é baseada nos exemplos do deste artigo da sun. Lá você pode conferir outros exemplos em inglês. Não é algo comum, mas certamente muitas pessoas já precisaram descompactar um arquivo zipado em uma aplicação. Essa tarefa tornou-se mais fácil depois que o Java disponibilizou as classes do pacote java.util.zip.*. A leitura do arquivo zip é simples. Utilizamos a API de I/O do Java. Precisamos de um Buffer para leitura e um para escrita e também das classes ZipFile, que encapsula o arquivo Zip e a classe ZipEntry que encapsula um arquivo dentro do zip. A classe ZipFile fornece um método que retorna os arquivos que estão contidos dentro do zip, basta percorremos o enum e ler cada um dos arquivos. É possível ainda saber se o 'arquivo' que estamos lendo é um diretório através do método isDirectory, caso contrário deve ser utilizada uma outra abordagem (não mostramos aqui), com o Stream podemos então escrever os arquivos fora do zip.
Na imagem abaixo temos o código fonte de exemplo.


Até a próxima dica!

segunda-feira, 2 de novembro de 2009

Dica 2: Escrevendo em um arquivo com Java

Na dica 1 vimos como fazer pra ler um arquivo utilizando Java. Nesta dica veremos como escrever conteúdo em um arquivo.
O processo de escrita em arquivos é muito semelhante ao de leitura, basicamente as classes/interfaces que antes terminavam com Reader agora terminam com Writer. O uso buffer é opcional para o caso de escrita, pois a classe FileWriter fornece método para escrita de strings diretamente no arquivo (a classe FileReader só permite leitura em bytes).
O código abaixo mostra como escrever em um arquivo em Java.



É isso aí pessoal! Até a próxima dica.

domingo, 1 de novembro de 2009

Dica 1: Lendo Arquivo com Java

Salve javeiros de plantão! Depois de um tempão fora do ar por causa dos estudos, vamos voltando aos poucos a postar no javeiro.
Irei começar uma série de dicas rápidas em Java, ideal para aqueles que não querem perder tempo lendo um monte de coisa :D.
A primeira dica é como ler um arquivo em Java. A API de I/O do Java é bastante rica e também um pouco chatinha de trabalhar, são muitas classes que se combinam para executar tarefas. A cada versão nova do Java temos vista diversas melhorias nessas APIs.
O código abaixo mostra como fazer a leitura de um arquivo em Java.


Essa é uma das formas de ler um arquivo em Java. Espero ter ajudado. Até a próxima dica!