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!

terça-feira, 10 de fevereiro de 2009

Usando os atalhos do Eclipse no Netbeans

Essa dica é muito boa para aqueles que desejam começar a usar o Netbeans mas estão acostumados com as teclas de atalho do eclipse, e que venhamos e convenhamos são uma verdadeira maravilha do eclipse ide. Você poderá usar a maioria dos atalhos do eclipse no Netbeans. É infelizmente não estão todos mapeados, mas para usuários iniciantes será como se eles estivem usando o eclipse, só que na verdade estarão usando uma ide melhor com os atalhos da anterior (vão me estrangular por esse comentário :D ).
Então vamos lá. Para isso acesse o menu Tools --> Options. Aí você verá a tela abaixo:



Em profile escolha: Eclipse. (tem várias outras opções se você quiser se divertir).
Prontinho. Agora é só usufruir dos benefícios da única IDE que você precisa com os atalhos da sua IDE anterior.
Até o próximo post!

sexta-feira, 30 de janeiro de 2009

Netbeans 7 disponível para download

Já está disponível o download da versão 7.0 do Netbeans. Ainda é um beta, mas pode ter certeza que vale a pena testar. As últimas versões da IDE que carregar o slogan: A única IDE que você precisa, vêm cada vez mais fazendo jus ao seu slogan. O Netbeans tem ganhado espaço entre os desenvolvedores Java, especialmente por sua grande gama de funcionalidades disponíveis, estabilidade e integração com diversos frameworks como: Jsf, Hibernate, Spring e etc. Em breve traremos mais novidades sobre a nova versão da IDE.
Enquanto isso você pode clicar aqui e começar a testar a nova versão, que está quentinha ainda!!!
Até o nosso próximo post!

quinta-feira, 29 de janeiro de 2009

Firebird + JPA e o Problema com o Generator

Resolvi fazer este post depois de muito sofrer para integrar o JPA com o Firebird. O grande problema que eu encontrei foi com o esquema de geração de ids do firebird. Firebird usa um esquema chamado de Generator, é muito parecido com esquema de sequences de bancos como oracle. Então vamos à solução do problema. Abaixo temos a nossa entidade Aluno, com as anotações do JPA. (omitimos os imports e os get/set, pois o foco é no generator.
@Entity
@Table(name="TB_BAIRRO")
@SequenceGenerator(name="GEN_TB_BAIRRO",sequenceName="GEN_TB_BAIRRO_ID")
public class Bairro extends BaseEntity {

@Id
@Column(name="BAIRRO_SEQ")
@GeneratedValue(strategy=GenerationType.AUTO,generator="GEN_TB_BAIRRO")
private Integer id;

@Column(name="BAIRRO_DSC")

private String descricao;

Definimos na classe qual é a sequence (no firebird Generator) que vai ser usada pra gerar a primary da key da tabela. O atributo name é importante pois ele vai ser usado, como pode ser visto acima, na anotação GeneratedValue, cuja strategy deve ser do tipo AUTO, e no parâmetro generator, informamos o nome que demos à nossa SequenceGenerator da tabela.
Até o nosso próximo post!