JAVA A Linguagem Java SOBRE MIM Bruno Thiago da Silva Programador Java Trainee na empresa G&P. Cursando 2º ano de Bacharel em Sistemas de Informação na FGP (Faculdade Gennari e Peartree), em Pederneiras. Formado Técnico em Informática com ênfase em programação, na ETEC Astor de Mattos Carvalho de Cabrália Paulista. Linkedin: https://br.linkedin.com/in/brunosilvajava SOBRE A APOSTILA Esta apostila têm o objetivo de apresentar ao estudante de programação Java um pouco sobre a história da linguagem e o processo de funcionamento de compilação e execução. É muito importante entender como este processo funciona, para que quando estiver programando com alguma IDE (Exemplos: Eclipse, NetBeans), saber o que está sendo feito por ela por ‘de trás dos panos’. INTRODUÇÃO A linguagem Java foi criada pela antiga Sun Microsystems na década de 90 com o nome de ‘OAK’, primeiramente utilizado em um controle remoto chamado Star Seven que tinha o objetivo de controlar eletrodomésticos. Em 1995 a linguagem foi rebatizada de Java ao ser lançada uma nova versão para a internet. Desde seu lançamento, a plataforma Java foi adotada mais rapidamente do que qualquer outra linguagem de programação na história da computação. Em 2004 Java atingiu a marca de 3 milhões de desenvolvedores em todo mundo. Hoje é uma referência no mercado de desenvolvimento de software. Em 2009 a empresa Oracle adquiriu a linguagem. Para saber mais: http://www.infoescola.com/informatica/historia-do-java/ NOÇÕES BÁSICAS DE PROGRAMAÇÃO Um pouco de linguagem de programação, compilação e execução. Uma linguagem de programação atua como um tradutor entre você e o computador. Em vez de aprender a linguagem nativa do computador (conhecida como linguagem de máquina), você pode usar uma linguagem de programação (Ex: Java) para instruir o computador de uma maneira que é mais fácil para você aprender e entender. Essa linguagem de programação é transformada em linguagem de máquina por um compilador, e após isso ela é executada pelo processador em um determinado Sistema Operacional. A LINGUAGEM JAVA No caso de Java, o programa não é compilado para uma plataforma (processador e sistema operacional) específica, mas para uma linguagem chamada ByteCode. A linguagem Java faz uso de uma máquina virtual para interpretar os códigos bytecodes. A máquina virtual utilizada pela Oracle é a JVM (Java Virtual Machine). Além da JVM, existem outras máquinas virtuais fornecidas por outras empresas, porém todas devem ser aprovadas pela Oracle para serem utilizadas. A LINGUAGEM JAVA Mas para que realmente serve a máquina virtual? A máquina virtual faz com que a linguagem Java possa ser executada em qualquer sistema operacional, ou seja, um único programa em Java pode ser utilizado no Windows, no Linux e assim por diante. O Slogan “Write Once, Run Anywhere” foi criado pela SUN e significa “Escreve uma vez, rode em qualquer lugar”. Write Once, Run Anywhere A LINGUAGEM JAVA Um arquivo Java (classe) possui a extensão ‘.java’. Após este arquivo ser compilado, é criado outro arquivo com a extensão ‘.class’, este contém os códigos bytecodes. O .class é lido pela JVM para ser executado pelo processador no SO. O arquivo .class só é gerado caso não haja nenhum erro de compilação. Erro de compilação ocorre quando existe algum erro de sintaxe, ou seja, a linguagem java foi escrita de alguma forma errada, isto pode ser comparado com um erro de português na linguagem. A LINGUAGEM JAVA Existe também o erro de execução, este ocorre na execução do arquivo ‘.class’. É gerado por um comportamento indesejável e não pensado no sistema, por exemplo um erro de lógica. É importante conhecer na prática o mecanismo de compilação e quando erros de compilação ou de execução ocorrem. Mas antes precisamos instalar o JDK (Java Development Kit) e criar as variáveis de ambiente. A LINGUAGEM JAVA O JDK é um conjunto de utilitários disponibilizado pela Oracle. Constitui um conjunto de programas que engloba compilador, interpretador e utilitários, fornecendo um pacote de ferramentas básicas para o desenvolvimento de aplicações Java. Veja agora alguns comandos disponíveis no JDK: • javac ( compilador ) • java ( interpretador ) • javadoc ( gerador de documentação ) • jar ( programa de compactação ) A LINGUAGEM JAVA Existem também o JRE (Java Runtime Envirorment), este é o ambiente de execução do Java, é o mínimo que precisa ser instalado para poder rodar um programa em Java. Portanto, ele é instalado na máquina dos usuários. O JDK já vem com o JRE, e o JRE tem a JVM. A LINGUAGEM JAVA Instalando o JDK 1. Acesse: http://www.oracle.com/technetwork/pt/java/javase/downloads/index.html; 2. Clique em Download do JDK. 3. Aceite a licença clicando em “Accept License Agreement” e então clique no JDK para o seu sistema operacional. 4. Após o download ser efetuado, execute o instalador do JDK. A LINGUAGEM JAVA Instalando o JDK Aceite os temos de licença A LINGUAGEM JAVA Instalando o JDK Selecione ‘Development Tools’ A LINGUAGEM JAVA Instalando o JDK Selecione ‘J2SE Runtime Evironment’ A LINGUAGEM JAVA Instalando o JDK Selecione o navegador que irá conter o plugin do Java. A LINGUAGEM JAVA Instalando o JDK Finalize. A LINGUAGEM JAVA Variáveis de Ambiente Variáveis de ambiente são variáveis fora dos programas e aplicações que são acessíveis pelos programas e aplicativos e guardam informações sobre o ambiente em que eles se encontram. As variáveis de ambiente JAVA_HOME e CLASSPATH são caminhos utilizados pelo java para que ele possa encontrar o compilador e executar o código que você está escrevendo. A LINGUAGEM JAVA Variáveis de Ambiente O compilador java (javac) e o executar java (java) se encontram na pasta bin da JDK (exemplo no Windows: C:\Program Files\Java\jdk1.8.0_45\bin). Para compilar na mão precisamos acessá-los através do SO, por isso da necessidade de configurar as variáveis de ambiente. JAVA_HOME: Indica onde foi instalado o JDK. CLASSPATH: Indica o caminho dos arquivos ‘.jar’, que estão localizados na pasta lib e jre/lib do JDK. A LINGUAGEM JAVA Variáveis de Ambiente: Configuração (Windows) 1. Vá em INICIAR; 2. Botão direito em ‘Computador ’e clique em ‘Propriedades’; 3. Clique em ‘Configurações Avançadas do Sistema’; 4. Na aba ‘Avançado’ clique no botão ‘Variáveis de Ambiente’; ... A LINGUAGEM JAVA Variáveis de Ambiente: Configuração (Windows) 5. Na caixa ‘Variáveis de Ambiente’, clique no botão ‘Novo...’ (Cuidado para não confundir com a caixa ‘Variáveis de usuário para...’) para criar a variável ‘JAVA_HOME’; 6. No campo de texto ‘Nome do usuário’ digite ‘ JAVA_HOME ’ e no campo ‘Valor da variável’ coloque o caminho do seu JDK (Ex: ‘C:\Program Files\Java\jdk1.8.0_45’) e clique em OK; ... A LINGUAGEM JAVA Variáveis de Ambiente: Configuração (Windows) 7. Novamente na caixa ‘Variáveis de Ambiente’, seleciona a variável ‘Path’ e clique em ‘Editar’; 8. No campo de texto ‘Valor da variável’ ADICIONE no final da linha o texto ‘ ;%JAVA_HOME%/bin ’ e clique em OK. (Cuidado: não apague o que já tem, apenas acrescente no final, após o ; ). Pronto, terminamos a configuração. A LINGUAGEM JAVA Compilando na mão 1. Crie uma pasta chamada ‘Desenvolvimento’ na unidade C e dentro dela outra pasta chamada ‘Exemplos’; 2. Abra o Bloco de Notas e o salve dando o nome de ‘Principal’ com a extensão .java; A classe JOptionPane faz parte do pacote Swing A LINGUAGEM JAVA Ela nos proporciona uma série de métodos estáticos que ao serem invocados criam caixas de diálogos simples e objetivas. Compilando na mão 3. No arquivo java criado digite o código abaixo: import javax.swing.JOptionPane; public class Principal{ public static void main(String[] args){ JOptionPane.showMessageDialog(null, "Compilando na mão!"); } } Método main A LINGUAGEM JAVA public static void main(String[] args){ } Compilando na mão Mas o que é o método main? Quando executamos um programa em Java, o sistema tem que ter um ponto de início, como haverá muitas classes e métodos, em qual terá início? A JVM está programada para executar o método main, portanto se você compilar e executar um arquivo, será o método main que executará primeiro. Como você deve ter percebido, cada sistema deve ter somente um método main abrigado em alguma classe, geralmente chamada de Principal. Perceba que o método main é um método estático, ou seja, a JVM não precisa instanciar a classe que contém o main para utilizá-lo. Uma ótima utilização do static, afinal não teria necessidade da instância. A LINGUAGEM JAVA Compilando na mão 4. Abra o prompt de comando e digite o comando para chegar ao diretório; cd C:/Desenvolvimento/Exemplos 5. Agora digite o comando de compilação abaixo; javac Principal.java Será gerado um arquivo chamado Principal.class (arquivo compilado). A LINGUAGEM JAVA Compilando na mão 6. Agora digite o comando abaixo para executar o arquivo compilado. java -cp . Principal Deu tudo certo!? Se não, retorne as etapas e faça novamente. Agora vamos ver alguns erros em tempo de compilação e em tempo de execução. 7. Apague o arquivo .class gerado. A LINGUAGEM JAVA Compilando na mão 8. Altere o arquivo java, apagando a importação ‘import javax.swing.JOptionPane;’ e deixe-o conforme o código abaixo, após isso compile e execute novamente. public class Principal{ public static void main(String[] args){ JOptionPane.showMessageDialog(null, "Compilando na mão!"); } } A LINGUAGEM JAVA Compilando na mão Note que houve um erro e o arquivo Principal.class não foi criado, isto porque ocorreu um erro em tempo de compilação, pois não foi importado o pacote onde a classe ‘JOptionPane’ se encontra, para que ela fosse utilizada. Agora coloque a importação novamente e apague o arquivo Principal.class para vermos um erro em tempo de execução. A LINGUAGEM JAVA Compilando na mão 9. Crie um novo arquivo chamado Teste.java, coloque o código abaixo nele e o compile. public class Teste{ public String testando(String texto){ return texto; } } A LINGUAGEM JAVA Compilando na mão 10. Edite o arquivo Principal.java conforme abaixo, compile-o e execute o ‘.class’. import javax.swing.JOptionPane; public class Principal{ private static Teste teste; public static void main(String[] args){ String texto = teste.testando("Testando erro em tempo de execução!"); JOptionPane.showMessageDialog(null, texto); } } A LINGUAGEM JAVA Compilando na mão 10. Deverá aparecer o erro em tempo de execução abaixo. Essa é a famosa Exception NullPointerException, ela ocorre quando é tentado acessar um membro não estático de classe sem esta estar instanciada. Perceba que ela mostra a classe e a linha onde o erro se encontra: ‘Principal.java:9’ Exception in thread "main" java.lang.NullPointerException at Principal.main(Principal.java:9) A LINGUAGEM JAVA Compilando na mão Para que execute normalmente, instancie a classe Teste na primeira linha dentro do main, compile e execute novamente. A LINGUAGEM JAVA Arquivo ‘.jar’ (Java ARchive) O jeito mais simples de trabalhar com um conjunto de classes e arquivos de configurações é compactá-los em um arquivo só. O Java trabalha com o arquivo ‘jar’, no estilo de um arquivo zip. O .jar é o executável de um programa em Java. O arquivo ‘jar’ pode ser criado com qualquer compactador zip disponível no mercado, inclusive o programa jar que vem junto com o JDK. Iremos aprender a criar este arquivo com o programa jar do JDK. A LINGUAGEM JAVA Arquivo Manifest.txt Mas antes de criarmos o .jar, vamos criar o arquivo ‘Manifest.txt’. Ele é utilizado pelo arquivo ‘.jar’ para que a JVM saiba qual é a classe principal da sua aplicação. É importante manter duas linhas em branco no final deste arquivo para que ele seja interpretado corretamente. Porquê? Boa pergunta, ainda não sei! Para mim isso parece ser uma gambiarra solução de contorno. A LINGUAGEM JAVA Arquivo Manifest.txt Crie o arquivo Manifest.txt dentro da pasta exemplos com o conteúdo abaixo. Feito isso, vamos criar o ‘.jar’. Manifest-Version: 1.0 Created-By: 1.7.0_11 (Oracle Corporation) Main-Class: Principal Atenção: não se esqueça das duas linha em branco no final. A LINGUAGEM JAVA Criando o arquivo ‘.jar’ Execute o comando abaixo dentro do diretório ‘C:/Desenvolvimento/exemplos’. jar –cvfm programa.jar Manifest.txt C:/Desenvolvimento/exemplos/*.class Será criado um arquivo chamado ‘programa.jar’. Agora vamos executar este arquivo. A LINGUAGEM JAVA Executando o arquivo ‘.jar’ Execute o comando ‘C:/Desenvolvimento/exemplos’. java -jar programa.jar O programa será executado. abaixo dentro do diretório A LINGUAGEM JAVA Um pouco mais sobre o arquivo ‘.jar’ Os arquivos ‘.jar’ não existem apenas para compactar arquivos de um programa Java, eles também são utilizados para compactar classes pertencentes à bibliotecas. Essas bibliotecas são utilizadas pelos programas para que estes tenham acesso às suas funcionalidades já prontas. Por exemplo: uma biblioteca para trabalhar com calendário chamada JCalendar é um arquivo compactado que pode ser adicionado ao seu programa, para que você não precise criar calendários ‘na mão’. A LINGUAGEM JAVA Java SE, Java EE e Java ME Java SE: Essa tecnologia vem do acrônimo ‘Java Standard Edition’, ela é utilizada para criar aplicações desktop. Basicamente é a versão base para o desenvolvimento Java, isso porque todas as outras plataformas herdam direta ou indiretamente todos os conceitos e componentes dessa tecnologia. Nosso curso irá trabalhar, inicialmente, com Java SE. Os arquivos de uma aplicação desktop são ‘compactados’ em um arquivo.jar, que já mostramos. A LINGUAGEM JAVA Todas as opções e funções contidas no eclipse são plugins integrados que já vem automaticamente definidos no download inicial, porém é possível criar novos plugins, ou seja, novas funcionalidades no próprio eclipse em que se trabalha Java SE, Java EE e Java ME Java EE: Essa tecnologia vem do acrônimo ‘Java Enterprise Edition’, que pode ser considerada uma versão empresarial para o desenvolvimento em java que engloba desde aplicações EJB até aplicações WEB. O plugin do Eclipse que permite que o desenvolvimento para WEB seja possível é o WTP. A LINGUAGEM JAVA Java SE, Java EE e Java ME Java ME: Essa tecnologia vem do acrônimo ‘Java Micro Edition’, é uma plataforma destinada aos dispositivos móveis e sistemas embarcados (embedded systems), ou seja, dispositivos com recursos limitados. Esta edição abrange celulares, PDAs, controles remotos, enfim, uma vasta gama de dispositivos. A LINGUAGEM JAVA E agora? Chegamos ao fim desta apostila. Parabéns!!! Mas e agora? Agora que você já sabe como funciona o processo de compilação e execução do Java, na próxima apostila iremos aprender a trabalhar com a IDE Eclipse para fazermos nossos programas em Java, pode ter certeza que ele irá facilitar muito nossa vida. Muito obrigado pela atenção. Espero que tenha gostado. Bruno Silva