Aula: 16 - Criando o método main e o arquivo JAR

O progresso até agora
Neste ponto, a nossa aplicação está praticamente completa. Vejamos:
  • Temos as Classes Pessoa, Livro e Biblioteca codificadas.
  • Como usamos a metodologia TDD, temos um alto grau de confiança de que as nossas Classes vão funcionar de acordo com o que foi projetado.
No entanto, nós só executamos partes da aplicação, e ainda assim, partindo das Classes de Teste: PessoaTest, LivroTest e BibliotecaTest usando o JUnit.

Executando um programa Java
Nesta última aula nós vamos criar um programa independente para criar e modificar Objetos do tipo Biblioteca.
Para tal, precisamos entender que:
  1. Quem executa um programa Java, é o Java Runtime Engine (JRE).
  2. Depois de carregar as nossas Classes em memória, o JRE, precisa saber o que fazer depois.
  3. Para isso, O JRE tenta executar um método especial chamado "main"
  4. Portanto, precisamos criar o método "main" em uma de nossas Classes.
Um exemplo:
Se a nossa aplicação tivesse algum tipo de Interface Gráfica com o Usuário (ou GUI), bastaria apresentar um formulário no método "main" e deixar o usuário prosseguir daí.
Criar uma Interface Gráfica em Java, está além do escopo deste curso, portanto:
No nosso caso:
Vamos simular uma ação do usuário sobre as nossas Classes no método "main" e exibir os resultados na console do sistema.
Para finalizar, assim que tivermos tudo isso funcionado dentro do Eclipse, vamos usar o seu "Ajudante de Exportação" para criar uma arquivo executável do tipo JAR.
Arquivos do tipo JAR, podem ser executados em qualquer computador (ou dispositivo) que execute Java (que tenha o JRE ou JDK instalados).

Na prática
Podemos colocar o método "main", em qualquer das nossas Classes, mas vamos fazer isso, na Classe Biblioteca, considerando que é ela a principal Classe da nossa Aplicação.
Mais uma vez, usando o assistente de código do Eclipse, vamos deixar que ele crie o método para nós.
Vamos digitar a palavra "main", seguida por Ctrl+Espaço e aceitar o método "main" proposto:
Obtendo o seguinte:
O método "main", é um método estático (static), que não retorna nada (void), e recebe como parâmetro um Array de Strings chamado "args" (String[] args).
Isso permite a um programa Java ler parâmetros da linha de comando. Não vai ser o caso do nosso exemplo.
Vamos prosseguir usando o assistente de código e fazer o seguinte:
  • Criar uma Biblioteca.
  • Criar Livros e Pessoas.
  • Associar Livros e Pessoas à Biblioteca.
  • Efetuar alguns empréstimos e devoluções.
  • Tudo isso, exibindo os resultados parciais na console.
Começamos assim: "new" + Ctrl+Espaço, e selecionando "create new object".
Completando para nos atender:
Vamos prosseguir usando o assistente de código até obter o seguinte:
O próximo passo, é exibir o status atual da Biblioteca. Vamos criar o método "imprimeStatus" para esta finalidade. Método esse que será utilizado sempre que for necessário exibir o status atual da Biblioteca à medida que o nosso programa vai sendo executado.
Assim: "sysout" + Ctrl+Espaço.
Obtendo:
Completando esta primeira parte:
Usando a mesma estratégia, vamos criar novas situações:
Usando o assistente de código, vamos criar o método "imprimeStatus".
Obtendo:
Depois de devidamente alterado para exibir a situação de cada Livro, de cada Pessoa e da Biblioteca como um todo, o método deve ficar assim:
Agora que a nossa Classe possui um método "main", ela pode ser considerada uma aplicação Java, e como tal pode ser executada.
Para isso, temos algumas opções: usando o menu principal, usando teclas de atalho ou usando o menu de contexto.
Com a Classe Biblioteca selecionada, usar o botão direito do mouse para acionar o menu de contexto e selecionar: Run As » Java Application
O que deve produzir um resultado semelhante a este na console:
Agora que temos a nossa aplicação funcionando no Eclipse, podemos nos preocupar em gerar um arquivo "executável" para ela.
No ambiente Java, este arquivo "executável" é do tipo JAR (ou Java Archive).
Este arquivo vai poder ser executado fora do Eclipse em qualquer sistema que seja compatível com Java.
Para isso, vamos usar o menu: File » Export...
E na janela que se abre: Java » JAR file
Na janela seguinte, fica claro o motivo de ter criado os nossos testes em um pacote separado. Neste momento, podemos exportar apenas o código fonte que é o que efetivamente é necessário.
Na tela seguinte vamos aceitar os valores default:
Na próxima tela vamos especificar a Classe que contém o método "main":
Acionando o botão "Browse":
A qual selecionada:
Feito isso, o arquivo JAR deve ter sido gerado:
Para testar este nosso executável fora do Eclipse, será necessário abrir uma console do sistema operacional no diretório onde o arquivo JAR foi gerado.
No Windows XP, a maneira clássica era usar o comando "Run" ou "Executar", digitar o comando "cmd", para chamar a console do sistema, e a partir daí, chegar ao diretório desejado e executar os comandos necessários.
Já no Windows 7, o comando "Run" não fica habilitado por default, e a opção da barra de pesquisa, é por vezes, muito lenta.
Se você já está usando o Windows 7 como eu, vai aqui uma dica de como habilitar esta opção no menu "Start" ou "Iniciar":
Acione o botão direito do mouse no menu "Start" ou "Iniciar" e selecione a opção: Properties ou Propriedades
Na tela que se abre, acione o botão "Customize" ou "Customizar":
Use a barra de rolagem até localizar o comando Run e selecione-o:
Clique OK, Apply e OK novamente nas telas anteriores.
Isso deve fazer surgir a opção de "Run" no menu Start.
De volta ao nosso objetivo, vamos usar esta opção Run do menu Start. Na tela que se abre, vamos digitar "cmd".
O que deve fazer abrir uma console do sistema:
Agora, com os comandos normais do DOS, devemos nos posicionar no diretório onde o arquivo JAR foi gerado:
E lá emitir o comando para executar a nossa aplicação:
      java -jar Biblioteca.jar
      
E o resultado esperado deve ser obtido:
Lembrando que o comando "java" pode ser executado de qualquer lugar, pois a sua localização está contida na variável de ambiente do sistema chamada PATH.


FIM - Este é o final do curso.


Congratulações!

Agora você já conhece os princípios básicos de Java e já sabe como funciona a IDE Eclipse.
Você pode agora, seguir no processo de aprendizagem como um Iniciante em Java.

Grato por ter decidido usar este material para a sua iniciação.

Uma palavra final.
Alguns de vocês podem estar se perguntando: Mas onde está o código fonte?
Sim, é comum neste tipo de curso, um link para que os alunos façam o Download do código completo.
Sinto desapontar alguns, mas não vai ser esse o nosso caso.
A principal idéia aqui é fazer com que você pratique, e digitar o código, no nosso caso, faz parte do aprendizado.
O Eclipse possui inúmeros recursos de auxílio, dos quais vimos apenas uma pequena parte.
Quando você digita o seu próprio código, coisas inesperadas podem ocorrer, erros de digitação podem ser cometidos...
Tudo isso é bom! Vai permitir a você aprender mais.

Nenhum comentário:

Postar um comentário