Escolar Documentos
Profissional Documentos
Cultura Documentos
01pratica Javac Bemvindo 2010-Windows
01pratica Javac Bemvindo 2010-Windows
Preparativos iniciais
Esta prtica supe que JDK (Java Standard Edition Development Kit) est instalado na mquina, mais precisamente o Java 5, com o JDK jdk1.5.0_08 (isso significa que o Java 5). 1. Verifique se o JDK est instalado e qual a verso dele. Use o Windows Explorer (clicar com o boto da direita em Iniciar e ento selecionar a opo Pesquisar no menu). V na pasta Java dentro de Arquivos de Programas e veja a verso do JDK. Qualquer verso que seja jdk1.5 (Java 5) pode ser usada. 2. Verifique se o compilador e interpretador esto configurados para serem acessados atravs da linha de comando. Inicie um prompt de comando, clicando em Iniciar, depois em Executar, digitando cmd e clicando em OK. A janela que aparecer dever ser como:
3. Digite o comando path, que mostra o contedo da varivel PATH, que informa em quais caminhos (pastas e sub-pastas) o sistema operacional deve procurar os programas a serem executados. Se o caminho da pasta onde os programas se encontram estiver configurado, deve haver Arquivos de programas\Java\jdk1.5.0_08\bin como parte do resultado desse comando. 4. Teste o compilador Java, digitando javac. Se uma mensagem grande, iniciada por Usage: javac <options> <source files> for impressa, ento o compilador foi executado. Seno, uma mensagem de erro como a seguinte deve ser apresentada: 'javac' no 1
reconhecido como um comando interno ou externo, um programa opervel ou um arquivo em lotes.. 5. No caso de haver erro, uma soluo digitar o caminho completo: c:\"Arquivos de programas"\Java\jdk1.5.0_08\bin\javac, que pode ser inconveniente. 6. Outra soluo alterar a configurao para aquele promt de comando, mas que ter que ser refeita todas as vezes todas as vezes que se abrir um novo prompt. Isso realizado atravs do comando path %PATH%;c:\Arquivos de programas\Java\jdk1.5.0_08\bin. Teste novamente. 7. Uma soluo definitiva alterar as configuraes do sistema que valer definitivamente para todos os programas do Windows. Na rea de trabalho, clique com o boto da direita em Meu computador e depois selecione a opo Propriedades no menu. Ento, selecione a aba Avanado e clique no boto Variveis de ambiente. Na parte inferior da janela, selecione a varivel Path e clique em Editar. Em Valor da varivel, v at o final da linha e acrescente ;c:\Arquivos de programas\Java\jdk1.5.0_08\bin. Lembre-se de iniciar com ; (ponto e virgula), que separa os diferentes caminhos que esto configurados nessa varivel. Abra outro prompt de comando e teste o comando javac. Observao: Em algumas situaes voc pode no ter permisso de mudar as configuraes do sistema. Nesse caso, a soluo mais adequada seria a segunda (alterar o contedo da varivel PATH manualmente todas as vezes).
9. Explicao do programa: A linha 1 contem um comentrio, pois iniciada com // . Existem outras formas de se inserir comentrios em um programa Java. A linha 2 contem a declarao da classe BemVindo. Por enquanto suficiente entender que uma classe precisa das palavras reservadas public e class e que BemVindo um nome qualquer, mas que como ser visto adiante, precisa ser igual ao nome do arquivo que vai conter a classe. Na linha 3, o caractere { (abre chaves) indica que tudo o vem a seguir pertence classe BemVindo, at o seu encerramento com }. A linha 4 declara o mtodo principal (main) dessa classe, que ser executado quando o programa for iniciado. A declarao public static void main(String args[]) necessria exatamente desta forma (com o tempo, cada palavra ser compreendida, mas por enquanto suficiente saber que isso necessrio). Nem todas as classes precisam ter um mtodo main. Na linha 5, o caractere { (abre chaves) indica que tudo o vem a seguir pertence ao mtodo main, at o seu encerramento com }. A linha 6 contem o comando System.out.println(Bem-vindo a UFABC); que imprime na tela (linha de comando) a mensagem Bem-vindo a UFABC. System.out um objeto de sada padro e println um mtodo que imprime um string (conjunto de caracteres) e passa para a prxima linha. Existem outros mtodos para imprimir na tela como ser visto a seguir, alm de mtodos para imprimir em janelas grficas. Repare que no foi usada a crase, como seria necessrio em bom portugus. No entanto, existem alguns problemas com relao acentuao, principalmente quando se lida com programas que executam em linha de comando. Todos que j acessaram endereos na Internet, sem pontuao e cedilhas j experimentaram isso. 2
As linhas 7 e respectivamente.
encerram
mtodo
main
classe
BemVindo,
10. Salve o programa com o nome BemVindo.java, sem as aspas em uma pasta de fcil acesso, como C:\temp\java. Se essa pasta no existir, ela deve ser criada. A extenso .java obrigatria em programas Java. O nome antes da extenso deve obrigatoriamente ser igual ao nome da classe public, observando que existe diferena entre letras maisculas e minsculas. Em ingls, diz-se que Java case sensitive porque o compilador sensvel a diferenas entre letras maisculas (upper case) e minsculas (lower case). Um arquivo pode conter vrias classes, mas apenas uma delas deve ser declarada como public. Entretanto, desaconselhado usar essa prtica de programao, ou seja, recomenda-se usar apenas uma classe public em cada arquivo .java.
javac: invalid flag: Bem Usage: javac <options> <source files> ... 17. Erros referentes ao arquivo .class. Exclua o arquivo BemVindo.class (pode usar o comando del" ou ento o Windows Explorer). C:\Temp\java>java BemVindo Exception in thread "main" java.lang.NoClassDefFoundError: BemVindo Essa mensagem estranha (por enquanto) significa que o arquivo BemVindo.class no foi encontrado. 18. Compile novamente o programa, com javac e digite o comando: C:\Temp\java>java BemVindo.class Exception in thread "main" java.lang.NoClassDefFoundError: BemVindo/class Dessa vez, o erro ocorreu porque foi digitada a extenso .class , que deve ser omitida.. 19. Erros referentes ao nome do arquivo diferente do nome da classe public. Faa uma cpia do programa BemVindo.java para algo como MeuPrograma.java e tente compil-lo: C:\Temp\java>javac MeuPrograma.java MeuPrograma.java:3: class BemVindo is public, should be declared in a file BemVindo.java public class BemVindo ^ 1 error C:\Temp\java> Essa mensagem identifica um erro na linha 3 (:3:), porque a classe BemVindo pblica e deve ser declarada em um arquivo chamado BemVindo.java. Experimente tambm alterar o nome do arquivo BemVindo.java para letras minsculas, ou seja, bemvindo.java. O compilador ir fazer a mesma reclamao. 20. Erros de sintaxe (escrita) no programa. Retire o caractere ; (ponto de virgula) do final da linha System.out.println(Bem-vindo a UFABC);. C:\Temp\java>javac BemVindo.java BemVindo.java:8: ';' expected } ^ 1 error Essa mensagem reclama da falta do ;. Uma pergunta que surge facilmente : por que ele diz que o problema na linha 8, antes do } e no na linha 7, depois do )? A reposta que o ; no precisa necessariamente estar no final da linha e o compilador o procura nas prximas linhas at encontrar algo que no devia estar l, no caso o }. Experimente incluir o ; antes do } na linha 8 ou abrir uma linha depois da linha 7 e antes da linha 8 atual e incluir somente o ;, para confirmar como isso funciona. No entanto, no considerada uma boa prtica de programao, porque dificulta a legibilidade e compreenso do programa. 21. Experimente introduzir outros erros de sintaxe, como por exemplo, remover o } final ou alterar uma palavra public para publica.
23. Faa uma cpia do programa BemVindo.java para BemVindo2.java. Lembre-se de alterar o nome da classe pblica tambm. 24. Usando o mtodo print. Substitua a linha: 6 por 6 6.1 System.out.print ("Bem-vindo a "); System.out.println (" UFABC "); System.out.println("Bem-vindo a UFABC ");
Compile o programa. O resultado deve ser igual ao programa anterior, porque o mtodo print imprime a mensagem, mas no passa para a prxima linha 25. Substitua agora o mtodo print por println e veja o resultado. As mensagens Bem-vindo a e UFABC devem ser impressas em linhas diferentes agora. 26. Usando o mtodo printf, para obter uma sada formatada. O printf consegue tratar de diferentes tipos de dados e no apenas strings (conjuntos de caracteres). Edite o arquivo chamado MeuPrograma.java criado anteriormente e faa as modificaes indicadas a seguir. 27. Pulando de linha com a seqncia de escape \n. Use o comando printf da seguinte forma: 6 System.out.printf("Bem-vindo a UFABC\n "); O \n dentro do printf informa que a sada deve passar para a prxima linha. Insira outros \n em outros pontos da mensagem para ver o efeito. Existem outras seqncias de escape, como \t, \r e \\. Experimente-as. Observe que essas seqncias funcionam tambm com print e println, mas so mais freqentemente usadas com printf (por conta das origens na linguagem C). 28. Usando a sada formatada. Transforme a linha de impresso anterior em um comentrio (com //) e digite esta: System.out.printf("%s\n%s\n", "Bem-vindo ", " a UFABC "); Agora o mtodo printf est sendo invocado (usado) com 3 argumentos, separados por vrgulas. O primeiro argumento contm o string de argumento composto de especificadores de formato (iniciados por %) e seqncias de escape. Nesse caso, %s significa que vai ser formatado um string. Repare que existe dois %s no string de argumento e outros dois argumentos aps ele. necessrio que haja um casamento entre a quantidade de especificadores de formato e de argumentos aps o string de argumentos. Existem outros especificadores de formato, como para nmeros inteiros (%d) e reais (%f). 29. Novamente comente a linha de impresso anterior (com //) e digite esta: System.out.printf("%s\n%s%d\n%s%f\n", "Nome: Maria", "Idade: ", 19, "Altura: ", 1.69); Repare agora que a seqncia representa a formatao da sada e ficou mais complexa %s\n%s%d\n%s%3.2f\n. Existem cinco especificadores de formato e cinco argumentos aps o string de argumento. Os tipos dos especificadores devem coincidir com os tipos dos argumentos, ou seja, por exemplo %s com Idade: , %d com 19 e %f com 1.69. Experimente trocar a idade (19) por um nome, para observar um erro de execuo. Porm, nem sempre ocorrem erros desse tipo para nos avisar, porque Java tenta fazer converso de tipos em tempo de execuo. Algumas vezes o programa fica com um erro de lgica e pode imprimir resultados incorretos, inclusive em relatrios importantes (imagine, no balano de uma empresa, ou nome seu contra-cheque!). Para a altura ser impressa apenas com duas casas decimais, substitua %f por %.2f. Outra maneira de obter o mesmo efeito, mas misturando as mensagens com o string de argumento e separando dos verdadeiros valores : System.out.printf(Nome: %s\nIdade: %d\nAltura: %3.2f\n, Maria", 19, 1.69);