NASA INFORMÁTICA Pág. 1 O ambiente Java Como foi comentado anteriormente, o Java é uma linguagem independente de plataforma. Tal característica torna-se possível com o uso de um formato intermediário, denominado de bytecodes, para o qual todo programa Java é compilado. Em cada plataforma específica de hardware, deve existir uma máquina virtual Java ou JVM (Java Virtual Machine}, que é capaz de interpretar os bytecodes de forma apropriada para a plataforma em uso. Como, em tese, o código é interpretado, temos uma desvantagem em termos de performance, o que pode ser compensado pelo uso de compiladores JIT (Just In Time). Por outro lado, obtemos várias vantagens a partir desse mecanismo (Kramer, 1996) 1 aplicações Java podem ser executadas em qualquer ambiente para o qual exista uma JVM própria; 2 - elimina-se a necessidade de adaptação dessas aplicações para diferentes plataformas; 3 - simplifica-se todo o processo de desenvolvimento; 4 torna-se possível a incorporação de fortes mecanismos de segurança nas aplicações desenvolvidas com essa linguagem. O ambiente Java é ilustrado esquematicamente na abaixo. Rigorosamente falando, a plataforma Java é constituída apenas de suas classes e API específicas, juntamente com a máquina virtual Java. As aplicações e os miniaplicativos (app/ers) Java são executados sobre a plataforma Java e, portanto, sob um ambiente uniforme. A plataforma Java pode ser adaptada para hardware específico de três formas:
NASA INFORMÁTICA Pág. 2 a) por meio de um adaptador específico para cada sistema operacional/hardware desejado; b) b) por meio de um adaptador específico para cada browser específico; ou (c) sendo integrada a um sistema operacional nativo Java que opere para um certo hardware. Especificamente, a máquina virtual pode ser migrada para uma determinada plataforma,para que obtenha maiores ganhos em termos de velocidade (como é o caso da JVM Microsoft), sem o comprometimento da portabilidade das aplicações. A criação de aplicações Java A criação de aplicações ou miniaplicativos (appiets) Java, capazes de operar adequadamente em um ambiente Java instalado em qualquer sistema, deve obedecer a uma série bastante simples de passos, representada através da Figura Tais passos são: 1. Edição do programa 2. Compilação do programa 3. Correção de erros 4. Execução do programa O primeiro passo consiste da edição do programa por meio de um editor de textos capaz de salvar arquivos no formato ASCII. O Bloco de Notas (Notepad) do Microsoft Windows. Você precisa acessar a tela do Ms-Dos no Windows (iniciarexecutar digite cmd e aperte enter. Ou acessar o prompt do comando do msdos em Arquivo de programas - acessórios Como Mostrado A pasta criado para exerc1 adiante informado
NASA INFORMÁTICA Pág. 3 Após a edição de qualquer programa Java, os arquivos devem, obrigatoriamente, ser salvos com a extensão. java. Tais arquivos de programa são chamados de arquivos-fonte de programa ou apenas arquivos-fonte. O segundo passo é a compilação do programa, que deve ser feita pelo programa javac fornecido com o JDK. Não encontrando erros, o compilador javac transformará o arquivo-fonte em um ou mais arquivos de extensão.class. Cada arquivo.class contém os bytecodes, formato intermediário da plataforma Java, equivalentes do programa editado. Existindo erros, os mesmos devem ser localizados e corrigidos, repetindo-se, para isso, os passos 1 e 2. Roteiro simplificado de criação de programas. Depois de compilado sem erros, o programa Java pode ser executado, o que corresponde ao quarto e último passo da sequência de criação de programas. No caso de aplicações Java, acionamos o programa java, que corresponde à máquina virtual que interpretará os bytecodes, informando apenas o nome do arquivo.class que desejamos executar. No caso de mini-aplicativos (appiets), deve-se utilizar o programa appletviewer, informando o nome do arquivo HTML que incorpora a appiet. Quando é solicitada a execução de uma aplicação, o programa java executa o seguinte procedimento: o arquivo.class indicado é primeiramente carregado na memória do sistema; após sua carga, cada bytecode é verificado para garantir que os requisitos de segurança sejam cumpridos e também para que as demais classes necessárias à aplicação sejam carregadas antes de sua efetiva utilização. Para cada arquivo.class detectado, são repetidos os mesmos passos, de forma que, ao ser finalizado o carregamento, todas as classes necessárias estejam carregadas e verificadas. Somente a partir deste ponto é que a aplicação é propriamente interpretada. No caso específico das appiets, o navegador (browser) efetua o download de um arquivo.class indicado no código HTML, interpretando-o diretamente ou acionando algum plug-in correspondente ao interpretador associado, sempre seguindo o procedimento de verificação e o carregamento prévio das classes necessárias.
NASA INFORMÁTICA Pág. 4 Em ambientes onde existam compiladores JIT (just in time), durante a verificação, os bytecodes são convertidos em instruções nativas do ambiente, permitindo o aumento de performance das aplicações ou appiets Java durante sua execução. Em nenhum caso, o código convertido é salvo, garantindo que, a cada execução, os bytecodes sejam verificados, minimizando os riscos de violação de segurança ou contaminação por vírus eletrônicos. O resultado proporcionado pelo ambiente Java é que as aplicações têm execução um pouco mais lenta do que o código nativo, quando são puramente interpretadas, ou têm um tempo de carregamento maior do que o código nativo equivalente, quando ocorre a compilação JIT, embora a performance da execução nessa situação seja praticamente idêntica ao código nativo. Concluímos que a independência de plataforma obtida representa um ganho significativamente maior do que as perdas em termos de performance, principalmente quando se tem como base o projeto de aplicações de rede, ou distribuídas, que tenham que operar em ambientes heterogêneos. Exercicio1: Oi.Java Primeiros Exemplos Java //Oi.java public class Oi public static void main(string args[ ]) { System.out,println("Oi Nasa Informática..!"); } } Sua Primeira aplicação Java. Crie um diretório apropriado para salvar o arquivo editado, por exemplo, "C:\SeuDiretorio\exerc1\". Garanta que seu nome seja Oi.java, respeitando mais uma vez a questão das letras minúsculas e maiúsculas. Os compiladores Java exigem que a extensão dos arquivos-fonte seja sempre.java. Essa exigência deve-se ao fato de a linguagem Java diferenciar as letras minúsculas das maiúsculas, implicando em cuidado com relação ao seu uso. Descrevendo o programa em questão: primeira linha um comentário opcional que indica o nome do arquivo a ser utilizado (será uma prática comum nos exemplos); na segunda linha, temos a declaração de uma classe de nome Oi. Dentro das chaves que delimitam a classe, se encontra um método de nome main e, finalmente, dentro deste método, acionamos a exibição da mensagem Oi!, por meio de um dos objetos do Java.
NASA INFORMÁTICA Pág. 5 Para podermos executar a aplicação, devemos primeiramente compilar o programa. Para tanto,precisamos acionar o compilador Java, ou seja, o programa javac, cuja sintaxe exibimos a seguir: javac [opções] arql.java [arq2.java... arqn.java] No momento, não precisaremos indicar nenhuma opção especial, bastando fornecer os nomes dos arquivos-fonte, incluindo sua extensão obrigatória.java. Supondo um sistema Windows, devemos abrir uma janela Prompt do MS-DOS. Depois, será necessário entrar no diretório no qual você salvou o arquivo e verificar se o mesmo foi salvo corretamente. Feito isso, e considerando que você instalou o JDK no diretório default, digite o comando abaixo seguido de um Enter (se outro diretório foi escolhido para instalar o JDK, faça a devida substituição): C:\jdk\bin\javac Oi.java Nota: Se você copiar ou Instalar o JDK na raiz do Ex: C:\JDK. Acesse o JDK e aciona o arquivo autoexec.bat (A.bat) para que Sistema procure o Java no direto na pasta do seu diretório. Assim você compila direto no seu diretório C:\SeuDiretorio\exerc1\ javac Oi.java O programa deve ser compilado sem nenhum tipo de erro, produzindo um arquivo Oi. class. Caso sejam exibidos erros, procure identificar o número da linha em que o mesmo ocorreu e leia atentamente a mensagem de erro fornecida, agilizando o processo de correção. Abaixo, temos um exemplo de mensagem de erro, obtida alterando-se o nome da classe de Oi para oi, ressaltando os problemas decorrentes do uso indevido de maiúsculas e minúsculas: Oi.java:3: Public dass oi must be defined in a file called oi.java". public dass oi { 1 error Observe que cada mensagem de erro é precedida pelo nome do arquivo em que o erro ocorreu (Oi.java), seguido do número da linha em que ocorreu o erro (linha 3) e da mensagem de erro propriamente dita. Nesse caso, o diagnóstico indicado diz que uma classe pública de nome oi deve ser definida num arquivo oi.java, e não Oi.java (a vogal inicial está diferente). Sugerimos que o nome da classe seja corrigido para Oi, mantendo-se a inicial maiúscula para o nome da classe e para o nome do rquivo. Recompile o programa, como foi feito anteriormente, até que não existam mais erros. Agora, podemos proceder com a execução acionando a JVM, cuja sintaxe é: java [opções] arql
NASA INFORMÁTICA Pág. 6 Para a JVM, só é necessário fornecer o nome do arquivo.class que desejamos executar, o que para nosso exemplo corresponde a: C:\jdk\bin\java Oi Este comando aciona a máquina virtual Java para a execução do programa, o que produz o resultado a seguir: Oi Nasa Informática! Pode não parecer muito, mas isso representa que você criou seu primeiro programa Java e que o mesmo funciona corretamente em seu computador! Essa seqüência de comandos e o resultado da execução do nosso primeiro exemplo, como figuram em uma janela Prompt do MS-DOS, são mostrados na seguinte: Um outro exemplo pode ser útil para fixarmos como devemos utilizar as ferramentas básicas do JDK. Edite o programa a seguir e salve-o no diretório criado para os exemplos do livro, sob o nome de Eco.java (observando as maiúsculas e as minúsculas): Exercicio2: Eco.Java //Eco.java public class Eco { public static void main(string[ ] args) { for (int i=0: i < args.length; 1++) System.out.print(args[ i ] + " "); System.outprintln(); } Segunda aplicação Java. Tal como no exemplo anterior, utilizando uma janela Promptdo MS-DOS, entre no diretório em que estão os arquivos de exemplo e acione o compilador Java, como indicamos: C:\jdk\bin\javac Eco.java
NASA INFORMÁTICA Pág. 7 Com isso, obteremos um arquivo Eco.class, que corresponde ao programa Eco.java traduzido em bytecodes da linguagem Java. Para executar o programa, digite: C:\jdkl\bin\java Eco Aparentemente, nada acontece, mas se, juntamente com o nome da classe, fornecermos alguns argumentos para o programa Eco na linha de comando, como é mostrado abaixo: C:\jdkl\bin\java Eco Testando l 2 3 Testando 123 Esse segundo exemplo, embora de utilidade duvidosa, é capaz de imprimir todos os argumentos fornecidos, tal como um eco. Veremos como utilizar os argumentos em detalhes, mais adiante "Aplicações de console". Se você não gosta de digitar comandos longos, como os utilizados até agora, pode simplificar um pouco tal tarefa fazendo o seguinte: Na janela Prompt do MS-D05, digite (se o diretório em que o JDK foi instalado é outro, use o nome correto): path = C:\jdkl\bin:%path% A partir deste ponto, você poderá acionar o compilador Java ou a JVM, simplesmente fornecendo seus nomes, tal como: javac Eco.java java Eco Note que, cada vez que você abrir uma nova janela Prompt do MS-DOS, deverá repetir esse procedimento. Ou se você domina MS-DOS devera colocar o comando acima no seu autoexec.bat na inicialização do windows. Com isso você dispensa a linha de comando para compilação javac e para visualizar seu aplicativo java. Nasa Informática