Introdução à Linguagem de Programação JAVA Aula 02 Introdução a Plataforma JAVA Tópicos da Aula • Tecnologia Java – Histórico – Plataforma Java – Linguagem Java Tecnologia Java • Java é tanto uma linguagem como uma plataforma – Em geral plataformas são compostas por Hardware e Software (SO) – Java é uma plataforma de Software – Java é uma linguagem de programação Histórico (1) • 1990 – Projeto Green na Sun Microsystem, gera necessidade de linguagem multi plataforma para pequenos dispositivos, Oak. • 1992 – Star 7, um PDA com Oak. Criação da FirstPerson • 1992/1994 – Sucessivos fracassos da FirstPerson no mercado de TV a cabo Histórico (2) • 1994 – FirstPerson volta para dentro da Sun, linguagem Oak passa a se chamar Java • 1995 – Primeira distribuição do Java a JDK 1.0, Netscape passa a fornecer suporte ao Java • 1996 – Javasoft, grupo de negócios Java da Sun Composição da Plataforma Java Processo de Compilação e Execução em Java Portabilidade da Plataforma Java (1) “escreva uma vez, rode em qualquer lugar” • O Java bytecode equivale ao código de instrução de máquina para a JVM • O Java bytecode permite a execução do mesmo programa em qualquer plataforma de hardware que possua uma JVM Portabilidade da Plataforma Java (2) Distribuições • Divisão das APIs focadas para ambientes e segmentos de aplicações diferentes: – J2ME (Java 2 Platform, Micro Edition) – ambientes de recursos limitados – J2SE (Java 2 Platform, Standard Edition) – ambientes de estações de trabalho – J2EE (Java 2 Platform, Enterprise Edition) – ambientes distribuídos, de grandes empresas ou internet Distribuição das APIs Histórico de Versões (1) • 1.0 (1996) – distribuição inicial: JVM + APIs Java + ferramentas de desenvolvimento. Java Runtime Environment (JRE). • 1.1 (1997) – conceito de innerclasses, que permitia classes aninhadas em outras classes, útil para escrever implementações de interfaces, utilizadas para tratamento de eventos. Histórico de Versões (2) • 1.2 (1998) – versão marcante, melhora da linguagem e do conjunto de bibliotecas. A Sun oficialmente designou a plataforma Java como Java 2. • 1.3 (2000) – pequenas alterações e correções • 1.4 (2002) – versão atualmente mais utilizada • 5 – A distribuição 1.5 foi renomeada para Java 2 versão 5. Esta é a mais recente distribuição da linguagem. Estrutura de Diretórios j2sdk1.4.2 bin java.exe javac.exe javap.exe javah.exe javadoc.exe lib jre tools.jar dt.jar bin java.exe java.dll awt.dll lib client server jvm.dll jvm.dll rt.jar charsets.jar ext security localedata.jar applet fonts Diretórios (1) x:\j2sdk1.4.2 – Diretório raiz, contém copyright, licensa e README. Contém também arquivo src.zip com todos os fontes da plataforma Java2 x:\j2sdk1.4.2\bin – Diretório dos executáveis das ferramentas do Java Development Kit. O path deve conter uma entrada para este diretório x:\j2sdk1.4.2\lib – Arquivos utilizados pelas ferramentas de desenvolvimento, incluindo: tools.jar e dt.jar. x:\j2sdk1.4.2\jre – Diretório raiz do Java Runtime Environment, ambiente de execução da plataforma Java 2. x:\j2sdk1.4.2\jre\bin – Executáveis e DLLs das ferramentas e bibliotecas utilizadas pela plataforma Java 2. x:\j2sdk1.4.2\jre\bin\client – arquivos DLLs do Java 2 HotSpot Client Virtual Machine. x:\j2sdk1.4.2\jre\bin\server – arquivos DLLs do Java 2 HotSpot Server Virtual Machine. Diretórios (2) x:\j2sdk1.4.2\jre\lib – bibliotecas de código, propriedades e arquivos de recursos utilizados pelo JRE. Inclui o rt.jar (classes que compõem a Java API) e charset.jar (classes de conversão de caracteres). x:\j2sdk1.4.2\jre\lib\ext – diretório padrão para instalação de extensões da plataforma Java. Inclui o localedata.jar (biblioteca para os pacotes java.text e java.util). x:\j2sdk1.4.2\jre\lib\security – arquivos de gerenciamento de segurança. Inclui arquivos de políticas de segurança (java.policy) e propriedades de segurança (java.security). x:\j2sdk1.4.2\jre\lib\applet - bibliotecas de suporte para applets. x:\j2sdk1.4.2\jre\lib\fonts – contém as fontes TrueType utilizadas pela plataforma Java 2. Estrutura de Diretórios Adicional j2sdk1.4.2 demo applet include jfc jpda src.zip plugin Diretórios Adicionais x:\j2sdk1.4.2\src.zip – arquivo que contém os fontes da plataforma Java 2. x:\j2sdk1.4.2\demo – exemplos, com código fonte, de programas Java. x:\j2sdk1.4.2\demo\applets – exemplos de applets. x:\j2sdk1.4.2\demo\jfc – exemplos de funcionalidades Java 2D e JFC/Swing. x:\j2sdk1.4.2\demo\jpda – exemplos utilizando Java Plataform Debugging Architecture. x:\j2sdk1.4.2\demo\plugin – exemplos de programas que utilizam o Java plugin. x:\j2sdk1.4.2\include – arquivos de cabeçalho C para suporte a programação nativa utilizando JNI e a Java Virtual Machine Debugger Interface. Ferramentas Básicas javac – compilador da linguagem Java. java – executor de programas java. O executor interno ao JRE será descontinuado, de modo que este será utilizado para desenvolvimento e execução. javadoc – gerador de documentação de API. appletviewer – executa e debuga applets sem um browser web. jar – gerencia arquivos jar. jdb – java debugger. javah – gerador de headers e stubs C. Utilizado para escrever métodos nativos. javap – desmontador de arquivos .class. extcheck – utilitário de detecção de conflitos de arquivos jar. Ferramentas Adicionais (1) • • • • rmic – gerador de stubs e skeletons para objetos remotos. rmiregistry – serviço de registro de objetos remotos. Rmid- ativação da deamon de sistema RMI serialver – retorna a classe serialVersionUID. • native2ascii – conversor de texto para Unicode Latin-1. Ferramentas Adicionais (2) • keytool – gerenciador de armazenamento de chaves e certificados. • jarsigner – gerador e verificador de assinaturas de arquivos jar. • policytool – interface gráfica de ferramenta de gerenciamento de políticas de segurança. • kinit – ferramenta para obter tickets kerberos v5. • klist – ferramenta de linha de comando para listar as entradas de uma tabela de credenciais ou chaves. • ktab – ferramenta de linha de comando para ajudar a gerenciar a tabela de entradas e chaves. Ferramentas Adicionais (3) • tnameserv – provê acesso ao serviço de nomes. • idlj – gera arquivos .java que mapea uma interface iDL OMG e habilita um programa escrito em Java a utilizar as funcionalidades de CORBA. • orbd – proporciona suporte para clientes localizarem e utilizarem objetos persistidos em servidores em um ambiente CORBA. • servertool – provê uma interface de fácil utilização para registrar, remover, iniciar e terminar um servidor. • unregbean – remove o registro de um pacote de componentes JavaBeans no ActiveX. Características da Linguagem Java • Simples • Independente de Arquitetura • Orientada a Objetos • Portável • Distribuída • • • • • • Performática Interpretada Multithread Robusta Dinâmica Segura