Algoritmia e Programação APROG Tecnologia JAVA IDE Netbeans Nelson Freire (ISEP–DEI-APROG 2012/13) 1/31 Tecnologia Java Sumário Tecnologia Java Desenvolvimento de Programas Ambientes de Desenvolvimento Ambiente Simples IDE Netbeans Netbeans Debugger Nelson Freire (ISEP–DEI-APROG 2012/13) 2/31 Tecnologia Java Java é uma Tecnologia Origem Anos 90 Empresa Sun Microsystems Comprada pela Oracle É uma tecnologia Linguagem de Programação + Ferramentas de Desenvolvimento + Bibliotecas de Classes + Ambientes de Execução JDK JRE (Java Development Kit) (Java Run-Time Environment) Mais do que uma linguagem Nelson Freire (ISEP–DEI-APROG 2012/13) 3/31 Tecnologia Java Arquitecturas JDK e JRE JDK JRE Nelson Freire (ISEP–DEI-APROG 2012/13) 4/31 Tecnologia Java Java Development Kit (JDK) Principais JDK Java SE ( http://java.sun.com/reference/api/ ) // SE = Standard Edition // Desenvolvimento de aplicações standard Java EE // EE =Enterprise Edition // Desenvolvimento para servidores Java ME // ME = Micro Edition // // Desenvolvimento para dispositivos embebidos e telemóveis Plataforma Java SE Versão Actual 7 Documentação http://download.oracle.com/javase/7/docs/technotes/tools/index.html Nelson Freire (ISEP–DEI-APROG 2012/13) 5/31 Tecnologia Java Sumário Tecnologia Java Desenvolvimento de Programas Ambientes de Desenvolvimento Ambiente Simples IDE Netbeans Netbeans Debugger Nelson Freire (ISEP–DEI-APROG 2012/13) 6/31 Desenvolvimento de Programas Ferramentas Fases do Desenvolvimento de um Programa Edição Programa Fonte Teste Criação Programa Executável Nelson Freire (ISEP–DEI-APROG 2012/13) Ferramentas Editor de Texto Debugger Compilador 7/31 Tecnologia Java Sumário Tecnologia Java Desenvolvimento de Programas Ambientes de Desenvolvimento Ambiente Simples IDE Netbeans Netbeans Debugger Nelson Freire (ISEP–DEI-APROG 2012/13) 8/31 Ambientes de Desenvolvimento Tipos de Ambientes de Desenvolvimento Editor de Texto + JDK Ambiente simples Permite usar editor de texto favorito Outras ferramentas fornecidas pelo JDK Ambiente de consola (Ex: janela Linha de Comandos do Windows) Invocadas por comandos da consola Comando javac para compilar e comando java para executar Interessante para desenvolvimento de programas simples Editor + JDK Editor de Texto com JDK integrado Compilação e execução dos programas são feitas dentro do editor Exemplos: Emacs, TextPad e JEdit Editor JDK IDE - Ambientes de Desenvolvimento Integrados Ambiente mais sofisticado Integra todas as ferramentas de desenvolvimento (incluindo JDK) Pesado para desenvolvimento de programas muito simples Exemplos: Eclipse (IBM) e Netbeans (Oracle) APROG IDE Editor JDK Usamos Netbeans Nelson Freire (ISEP–DEI-APROG 2012/13) 9/31 Tecnologia Java Sumário Tecnologia Java Desenvolvimento de Programas Ambientes de Desenvolvimento Ambiente Simples IDE Netbeans Netbeans Debugger Nelson Freire (ISEP–DEI-APROG 2012/13) 10/31 Ambiente Simples Instalação do JDK 1. Download http://java.sun.com/javase/downloads/index.jsp (JDK - Java SE) 2. Instalar 3. Adicionar o directório dos executáveis ao caminho de execução do windows (PATH): Directório (exemplo): C:\Programs\Sun\SDK\jdk\bin Na linha de comandos: SET PATH= C:\Programs\Sun\SDK\jdk\bin;%PATH ou // PATH para Testar // Maiúsculas obrig. Painel de controlo > Sistema > Avançadas > Variáveis de Ambiente > PATH 4. Testar Nelson Freire (ISEP–DEI-APROG 2012/13) 11/31 Ambiente Simples Edição do Programa Fonte Usar um Editor de Texto Exemplo Notepad Gravar Ficheiro Nome obrigatório nomeClasse.java Exemplo nome classe: Ola nome ficheiro: Ola.java Nelson Freire (ISEP–DEI-APROG 2012/13) 12/31 Ambiente Simples Compilar Programa Fonte Ajuda Nome Ficheiro Compilado nomeFicheiroJava.class Exemplo Compilar programa fonte Ola.java javac c:\aprog\Ola.java // extensão java obrigatória Ficheiro Compilado Ola.class Nelson Freire (ISEP–DEI-APROG 2012/13) 13/31 Ambiente Simples Executar Programa Compilado Ajuda Exemplo Classe guardada no directório corrente java Ola // Ola é a classe (Ola.class) Classe não guardada no directório corrente java - cp c:\aprog\Ola Nelson Freire (ISEP–DEI-APROG 2012/13) // nome completo da classe 14/31 Tecnologia Java Sumário Tecnologia Java Desenvolvimento de Programas Ambientes de Desenvolvimento Ambiente Simples IDE Netbeans Netbeans Debugger Nelson Freire (ISEP–DEI-APROG 2012/13) 15/31 IDE Netbeans Download Grátis • http://netbeans.org Nelson Freire (ISEP–DEI-APROG 2012/13) 16/31 Ferramentas IDE Netbeans Ferramentas Fases do Desenvolvimento dum Programa Java Trabalha-se sempre num projeto Projeto é coleção de ficheiros Ficheiros fonte, bibliotecas, etc. Criação do Projeto Editor de Texto Edição Programa Fonte Debugger Teste Compilador Criação Programa Executável Nelson Freire (ISEP–DEI-APROG 2012/13) *.java *.class (bytecodes) *.jar 17/31 IDE Netbeans Projetos Janela Projects Ficheiros dos projetos organizados em packages e bibliotecas Janela Files Perspectiva diferente da organização dos ficheiros do projeto Organização dos ficheiros no disco (pastas ou directórios) Projeto Principal (Main Project) Nome destacado a negrito Projeto sobre o qual são aplicados os comandos do IDE Classe Principal (Main Class) É a classe do programa que contém o método main Nelson Freire (ISEP–DEI-APROG 2012/13) 18/31 Tecnologia Java Sumário Tecnologia Java Desenvolvimento de Programas Ambientes de Desenvolvimento Ambiente Simples IDE Netbeans Netbeans Debugger Nelson Freire (ISEP–DEI-APROG 2012/13) 19/31 Netbeans Debugger Sumário Tipos de Erros num Programa Sintácticos Execução Lógicos Debugger Introdução Sessão de Debugging Preparar Iniciar Executar Programa Observar Variáveis e Expressões Terminar Nelson Freire (ISEP–DEI-APROG 2012/13) 20/31 Netbeans Debugger Tipos de Erros num Programa Erros Sintácticos Surgem durante compilação do programa Não permitem compilação do programa (i.e, criação do programa executável) Erros de Execução Surgem durante execução do programa Abortam execução do programa Erros Lógicos Surgem durante execução do programa Provocam resultados imprevistos (não abortam execução do programa) Nelson Freire (ISEP–DEI-APROG 2012/13) 21/31 Netbeans Debugger Erros Sintácticos Típicos Erros ortográficos em palavras-chave // lenght em vez de length Referências a variáveis não declaradas Parêntesis à esquerda que não foram fechados Pontuação incorreta // println(“Nota=” , nota) Problema Impedem criação do programa executável Localização e Correção das Fontes dos Erros Muito fácil Através das mensagens de diagnóstico de erro geradas pelo compilador Fornecem localização do erro e natureza do erro No Netbeans É no momento da escrita do código Nelson Freire (ISEP–DEI-APROG 2012/13) 22/31 Netbeans Debugger Erros de Execução Típicos Excedida capacidade de variável Tipos Overflow // atribuído valor excessivamente grande Underflow // atribuído valor excessivamente pequeno Excedida capacidade de array Operações indevidas Divisão por zero Raiz quadrada de nº negativo Logaritmo de nº negativo Problema Abortam execução do programa Localização e Correcção das Fontes dos Erros Geralmente, é muito fácil Através das mensagens de diagnóstico de erro geradas pelo ambiente de execução Exemplo Nelson Freire (ISEP–DEI-APROG 2012/13) 23/31 Netbeans Debugger Erros Lógicos Exemplo int s=0; for(int i=0; i<10; i++) ; s // ciclo não faz nada = s +v[i]; Problema Originam resultados imprevistos do programa Localização e Correcção das Fontes dos Erros Pode ser muito difícil Computador executa corretamente instruções Não são geradas mensagens de diagnóstico de erro Requer boa dose de testes do programa Solução de último recurso Traçagem de programa executado passo-a-passo Permite verificar Ordem de execução das instruções Comportamento das variáveis Nelson Freire (ISEP–DEI-APROG 2012/13) 24/31 Netbeans Debugger Debugger: Introdução Noção Ferramenta fornecida pelos Ambientes de Desenvolvimento Interesse Facilitar localização e correcção de erros lógicos Facilidades Oferecidas Execução passo-a-passo de programa Todo Parte Suspensão temporária da execução do programa em pontos específicos (breakpoints), mostrando os valores de certas variáveis (variáveis watch) ou expressões (expressões watch) nesses momentos de suspensão Variante da anterior Suspensão temporária apenas se uma dada expressão watch se tornar verdadeira (breakpoint condicional). Nelson Freire (ISEP–DEI-APROG 2012/13) 25/31 Netbeans Debugger Sessão Debugging : Interesse e Tarefas • Interesse Fazer debug de programa • Tarefas Típicas Preparar debug Iniciar sessão de debugging Executar programa Observar informação de debugging Terminar sessão de debugging Nelson Freire (ISEP–DEI-APROG 2012/13) 26/31 Netbeans Debugger Sessão Debugging : Preparar Colocar linhas de breakpoint no código Para suspender execução do programa em pontos específicos No editor fonte fazer clique na margem esquerda da linha desejada Apenas em linhas de execução Não inclui declarações sem inicializações Definir variáveis e expressões watches no código Se pretendermos observar apenas variáveis e expressões especificas Janela watches Clique direito sobre variável ou expressão seleccionada e escolher New Watch Nelson Freire (ISEP–DEI-APROG 2012/13) 27/31 Netbeans Debugger Sessão Debugging: Iniciar Projeto Principal Menu Debug > Debug Main Project (Ctrl + F5) ou Clique direito no nome projeto e escolher Debug Ficheiro Clique direito no nome do ficheiro e escolher Debug File Nelson Freire (ISEP–DEI-APROG 2012/13) 28/31 Netbeans Debugger Sessão Debugging: Executar Programa Após suspensão temporária da execução numa linha Para continuar para próximo breakpoint Menu Debug > Continue (F5) Para continuar até ao cursor Debug > Run to Cursor (F4) Para continuar para linha executável seguinte Debug > Step Into (F7) // Salta para dentro do método chamado Debug > Step Over (F8) // Salta sobre método chamado Debug > Step Over Expression // Salta, à vez, sobre cada método chamado numa expressão; Ex: System.out.println( c + "!=" + factorial(c) ); Para sair do método corrente Debug > Step Out (Ctrl+F7) Nelson Freire (ISEP–DEI-APROG 2012/13) 29/31 Netbeans Debugger Sessão Debugging : Monitorar Informação Janelas de Debugging Variables // Mostra variáveis locais do método corrente Watches // Mostra variáveis e expressões seleccionadas No Editor do Código Colocar cursor sobre Identificador de variável Expressão seleccionada Nelson Freire (ISEP–DEI-APROG 2012/13) 30/31 Netbeans Debugger Sessão Debugging : Terminar Debug > Finish Debugger Session (Shift+F5) Nelson Freire (ISEP–DEI-APROG 2012/13) 31/31