| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <!-- |
| Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. |
| --> |
| |
| <html> |
| <head> |
| <title>Visão Geral do Suporte a JDK 7 no NetBeans IDE</title> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" > |
| <link rel="stylesheet" type="text/css" href="../../../netbeans.css"> |
| <meta name="KEYWORDS" content="NETBEANS, TUTORIAL, GUIDE, USER, DOCUMENTATION"> |
| |
| <meta name="description" content="A short guide to using JDK 7 features in NetBeans IDE. Also includes information on setting the JDK."/> |
| </head> |
| |
| <body> |
| |
| <h1>Visão Geral do Suporte a JDK 7 no NetBeans IDE</h1> |
| <p>O NetBeans IDE introduziu o suporte para as novas funcionalidades de linguagem do JDK 7, como o operador diamante, strings em switch, multicatch etc. Quando você usa esses construtores em seu código, o IDE os reconhece, oferece classes corretas na funcionalidade autocompletar código, destaca erros corretamente e permite corrigir a sintaxe automaticamente. Portanto, o NetBeans IDE ajuda você a escrever código compatível com a especificação de linguagem do JDK 7. </p> |
| <p>Neste tutorial, você aprende como ativar o suporte a JDK 7 no IDE e vê como o IDE trata novos construtores da linguagem. </p> |
| <p><b>Conteúdo</b></p> |
| <img alt="O conteúdo desta página se aplica ao NetBeans IDE 6.8, 6.9, 7.0 e 7.1" class="stamp" src="../../../images_www/articles/70/netbeans-stamp-70-71.png" title="O conteúdo desta página se aplica ao NetBeans IDE 6.8, 6.9, 7.0 e 7.1"> |
| <ul class="toc"> |
| <li><a href="#add" title="Configuração do Projeto">Registrando o Java 7 no NetBeans IDE</a></li> |
| <li><a href="#project">Configurando o Projeto para usar o JDK 7</a></li> |
| <li><a href="#switch">Usando Novos Construtores de Linguagem do JDK 7: Instrução de Alternância</a></li> |
| <li><a href="#more">Suporte a JDK 7: Mais Exemplos</a></li> |
| <li><a href="#nextsteps" title="Próximas Etapas">Próximas Etapas</a></li> |
| </ul> |
| |
| <p><b>Para concluir este tutorial, são necessários o software e os recursos apresentados na tabela a seguir.</b></p> |
| |
| <table> |
| <tbody> |
| <tr> |
| <th class="tblheader" scope="col">Software ou Recurso</th> |
| <th class="tblheader" scope="col">Versão Necessária</th> |
| </tr> |
| <tr> |
| <td class="tbltd1"><a href="http://www.netbeans.org/downloads/index.html">NetBeans IDE</a></td> |
| <td class="tbltd1">versão 7.0 e 7.1</td> |
| </tr> |
| <tr> |
| <td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">Java Development Kit (JDK)</a></td> |
| <td class="tbltd1">versão 7</td> |
| </tr> |
| </tbody> |
| </table> |
| <h2><a name="add"></a>Registrando o Java 7 no NetBeans IDE </h2> |
| <!--<p>Before the official release of Java™ Platform, Standard Edition 7, you can obtain the JDK 7 source code and development builds from the <a href="http://openjdk.java.net/projects/jdk7" target="_blank">OpenJDK Project</a> website. </p>--> |
| <p><strong>Para ativar o suporte ao JDK 7 no NetBeans IDE:</strong></p> |
| <ol> |
| <li>Faça download e instale o JDK 7 em seu sistema.</li> |
| <li>No IDE, selecione Ferramentas > Plataformas Java no menu principal.</li> |
| <li>Clique em Adicionar Plataforma e especifique o diretório que contém o JDK (por exemplo, no Windows, este é o diretório de instalação do JDK, cujo default é <tt>C:\Arquivos de Programas\Java\jdk1.7.0</tt>). <br>o diretório que contém a Plataforma Java é marcado com o ícone <img alt="Ícone da Plataforma Java" src="../../../images_www/articles/70/java/javase-jdk7/platform.gif">. </li> |
| <li>Na etapa Nome da Plataforma, verifique se os locais default do arquivo zip Códigos-fonte da Plataforma e da documentação da API são válidos. </li> |
| <li>Clique em Finalizar para fechar a caixa de diálogo Adicionar Plataforma Java.</li> |
| <li>Assegure-se de que o JDK 1.7 esteja selecionado na lista Plataformas e clique em Fechar.</li> |
| </ol> |
| <table> |
| <tr> |
| <!-- Start Embed Video --> |
| <td class="valign-top" class="align-center" width="480" > |
| <embed src="http://bits.netbeans.org/media/register-jdk7.swf" type="application/x-shockwave-flash" width="480" height="270" allowscriptaccess="always" allowfullscreen="true" autoplay="false" controller="true" scale="aspect"></embed> |
| <td>Clique <a href="http://bits.netbeans.org/media/register-jdk7.swf">aqui</a> para exibir em tela cheia, Ctrl+clique para fazer o download, 1,1 MB.</td> |
| <!-- End Embed Video --> |
| </tr> |
| </table> |
| <p class="notes"><strong>Observação</strong>: o local default da API do Javadoc da Plataforma é esse <a href="http://download.java.net/jdk7/docs/" target="_blank">URL da Web</a>. Para o uso off-line, faça download do arquivo JAR do javadoc na <a href="http://dlc.sun.com.edgesuite.net/jdk7/binaries/index.html" target="_blank">página de snapshots de binários do JDK7</a> e especifique seu local no sistema. </p> |
| <h2><a name="project"></a>Configurando o Projeto para Usar o JDK 7</h2> |
| <p>Depois de registrar o JDK 7 no IDE, é preciso configurar o projeto para usar esse JDK para compilação, execução e depuração. </p> |
| <ol> |
| <li>Crie um projeto Java. Escolha Arquivo > Novo Projeto e selecione Aplicação Java como o tipo de projeto. Clique em Próximo.</li> |
| <li>Digite <tt>SwitchTest</tt> como nome do projeto e especifique sua localização. </li> |
| <li>Na janela Arquivos, clique com o botão direito do mouse no nó do projeto <tt>SwitchTest</tt> e selecione Propriedades > Bibliotecas. Nessa guia, selecione JDK 1.7 na lista de Plataformas Java.<br> <img alt="Definindo JDK7 como formato de destino." class="margin-around b-all" src="../../../images_www/articles/70/java/javase-jdk7/props-libs.png"></li> |
| <li>Alterne para a guia Códigos-fonte da janela Propriedades do Projeto e selecione JDK 7 como o formato do Código-fonte/Binário. <br> <img alt="Especificando o JDK 7 como o formato de origem" class="margin-around" height="431" src="../../../images_www/articles/70/java/javase-jdk7/props-sources.png" width="573"></li> |
| <li>Clique em OK para salvar as alterações. Seu projeto está definido para reconhecer as novas funcionalidades de linguagem do JDK 7.<br> |
| </li> |
| </ol> |
| <table> |
| <tr> |
| <!-- Start Embed Video --> |
| <td class="valign-top" class="align-center" width="480" > |
| <embed src="http://bits.netbeans.org/media/configuring-project-jdk7.swf" type="application/x-shockwave-flash" width="480" height="270" allowscriptaccess="always" allowfullscreen="true" autoplay="false" controller="true" scale="aspect"></embed> |
| <td>Clique <a href="http://bits.netbeans.org/media/configuring-project-jdk7.swf">aqui</a> para exibir em tela cheia; Ctrl+Clique para download, 1,3 MB.</td> |
| <!-- End Embed Video --> |
| </tr> |
| </table> |
| |
| <h2><a name="switch"></a>Usando Novos Construtores de Linguagem do JDK 7: Instrução de Alternância</h2> |
| <p>O JDK 7 traz uma série de <a href="http://openjdk.java.net/projects/jdk7/features/" target="_blank">novas funcionalidades e melhorias</a> em diferentes áreas, incluindo internacionalização, E/S e rede, segurança etc. A melhor forma de ilustrar o suporte ao JDK 7 pelo Editor Java do IDE é demonstrando algumas das alterações de linguagem introduzidas pelo Projeto Coin. </p> |
| <p>Uma dessas alterações é um "String em uma alternância". Nas versões anteriores do Java, o argumento de <tt>switch</tt> só podia ser um dos seguintes tipos de dados primitivos: <tt>byte</tt>, <tt>short</tt>, <tt>char</tt>, <tt>int</tt> ou <tt>enum</tt>. A partir do JDK 7, é possível usar argumentos do tipo <tt>String</tt> na expressão de uma instrução <tt>switch</tt>. </p> |
| <ol> |
| <li>Abra <tt>SwitchTest.java</tt> e adicione o código a seguir. Essa pequena amostra exibe códigos RGB para várias cores. <br> Com o JDK 7, a variável <tt>color</tt> pode ser uma <tt>String</tt>. |
| <pre class="examplecode">package switchtest; |
| |
| public class SwitchTest { |
| |
| public static void main(String[] args) { |
| |
| String color = "red"; |
| String colorRGB; |
| switch (color.toLowerCase()) { |
| case "black": colorRGB = "000000"; break; |
| case "red": colorRGB = "ff0000"; break; |
| case "green": colorRGB = "008000"; break; |
| case "blue": colorRGB = "0000ff"; break; |
| default: colorRGB = "Invalid color"; break; |
| } |
| System.out.println(colorRGB); |
| } |
| } |
| </pre> |
| |
| <p class="tips">Se o código colado for incorretamente colado no editor, pressione Alt-Shift-F para reformatar.</p> |
| </li> |
| <li>Na janela Arquivos, clique com o botão direito do mouse no nó do projeto e escolha Executar. Você verá a saída da aplicação, que é o código RGB para a cor vermelha. <br> Você pode ver que a construção foi bem-sucedida e que a aplicação funciona quando a plataforma de destino e o formato do código-fonte são JDK 7. <br> <img alt="Saída da execução do projeto." class="margin-around b-all" height="82" src="../../../images_www/articles/70/java/javase-jdk7/output.png" width="326"></li> |
| <li>Vamos reverter para o uso do JDK 6 e testar como a aplicação é compilada com o compilador do JDK 6. <br> Na janela Arquivos, clique com o botão direito do mouse no nó do projeto e escolha Propriedades. Na guia Bibliotecas, defina a Plataforma Java para <tt>JDK 1.6</tt> e, na guia Códigos-fonte, defina a opção Formato do código-fonte para <tt>JDK 6</tt>.<br> Você pode ver imediatamente que o parser do JDK6 não reconhece a sintaxe. A compilação falha por causa do tipo de variável incompatível. <br> <img alt="Saída da execução do projeto." class="margin-around b-all" height="142" src="../../../images_www/articles/70/java/javase-jdk7/error.png" width="482"></li> |
| <li>Agora, vamos reescrever o código usando a instrução <tt>if-then-else</tt>, em vez de <tt>switch</tt>, como mostrado na figura. <br> Com o JDK 7 sendo a plataforma de destino, o IDE reconhece tais casos e oferece para convertê-los para <tt>switch</tt>. <br> Clique na dica e o construto <tt>if-then-else</tt> será automaticamente convertido para exatamente o mesmo <tt>switch</tt> que tínhamos antes. <br> <img alt="Convertendo if-then-else para switch" class="margin-around b-all" height="320" src="../../../images_www/articles/70/java/javase-jdk7/convert.png" width="398"></li> |
| <li>Execute a aplicação com diferentes valores. </li> |
| </ol> |
| <table> |
| <tr> |
| <!-- Start Embed Video --> |
| <td class="valign-top" class="align-center" width="480" > |
| <embed src="http://bits.netbeans.org/media/jdk7-switch-statement.swf" type="application/x-shockwave-flash" width="480" height="270" allowscriptaccess="always" allowfullscreen="true" autoplay="false" controller="true" scale="aspect"></embed> |
| <td>Clique <a href="http://bits.netbeans.org/media/jdk7-switch-statement.swf">aqui</a> para exibir em tela cheia, Ctrl+clique para fazer o download, 2,5 MB.</td> |
| <!-- End Embed Video --> |
| </tr> |
| </table> |
| <h2><a id="more" name="more"></a>Suporte a JDK 7: Mais Exemplos</h2> |
| <p>Para demonstrar como o Editor Java do IDE reconhece e automaticamente corrige o código para que seja compatível com a especificação de linguagem do JDK 7, vamos usar um snippet de código simulado, que não tem finalidade, mas contém todas as grandes melhorias da linguagem. </p> |
| <p>Ao percorrer esse snippet de código simulado e aplicar as dicas do editor, você verá os exemplos a seguir de como: </p> |
| <ul> |
| <li>Tirar vantagem da inferência automática de tipo, quando o compilador Java consegue inferir o tipo de uma instância genérica sem a necessidade de especificá-la explicitamente. O <em>operador diamante</em> é usado para sinalizar o caso de inferência de tipo. </li> |
| <li>Usar o tratamento aprimorado de exceção, ou <em>multi-catch</em>, quando um bloco <tt>catch</tt> pode ser usado para vários tipos de exceções. <br> |
| </li> |
| <li>Usar a nova sintaxe das instruções de fechamento de funcionalidades, introduzida pela funcionalidade de gerenciamento automático de funcionalidades. </li> |
| </ul> |
| <ol> |
| <li>Substitua o código anterior da aplicação no mesmo arquivo <tt>SwitchTest.java</tt> pelo seguinte:<br> |
| <pre class="examplecode"> |
| package switchtest; |
| |
| |
| import java.io.FileInputStream; |
| import java.io.FileNotFoundException; |
| import java.io.IOException; |
| import java.util.ArrayList; |
| import java.util.HashMap; |
| import java.util.List; |
| |
| public class SwitchTest { |
| |
| public void test() throws IOException { |
| List<String> list = new ArrayList<String>(); |
| HashMap<String, Integer> map = new HashMap<String, Integer>(); |
| HashMap<String, Integer> map2 = new HashMap<String, Integer>(); |
| String a = "ehlo"; |
| |
| try { |
| Method m = Object.class.getMethod("toString"); |
| m.invoke(this); |
| } catch(NoSuchMethodException e) { |
| e.printStackTrace(); |
| } catch(InvocationTargetException e) { |
| e.printStackTrace(); |
| } catch(IllegalAccessException e) { |
| e.printStackTrace(); |
| } |
| |
| FileInputStream in = null; |
| try { |
| in = new FileInputStream("foo.txt"); |
| |
| int k; |
| while ((k = in.read()) != -1) { |
| System.out.write(k); |
| } |
| } finally { |
| if (in != null) { |
| in.close(); |
| } |
| } |
| } |
| } |
| </pre> |
| </li> |
| <li>Observe que o IDE exibe diversas dicas, como mostrado acima neste tutorial, de como é possível otimizar seu código para a especificação JDK 7. Basta clicar em cada dica e selecionar a ação sugerida. <br> |
| </li> |
| <li>Finalmente, depois de aceitar todas as sugestões, você deverá ter o código compatível com JDK 7 mostrado abaixo.<br> <img alt="Snippet de código convertido" class="margin-around b-all" src="../../../images_www/articles/70/java/javase-jdk7/converted.png"><br> |
| </li> |
| </ol> |
| <table> |
| <tr> |
| <!-- Start Embed Video --> |
| <td class="valign-top" class="align-center" width="480" > |
| <embed src="http://bits.netbeans.org/media/jdk7-examples.swf" type="application/x-shockwave-flash" width="480" height="270" allowscriptaccess="always" allowfullscreen="true" autoplay="false" controller="true" scale="aspect"></embed> |
| <td>Clique <a href="http://bits.netbeans.org/media/jdk7-examples.swf">aqui</a> para exibir em tela cheia; Ctrl+Clique para download, 1,8 MB.</td> |
| <!-- End Embed Video --> |
| </tr> |
| </table> |
| <div class="indent"></div> |
| <!--<br>--> |
| <div class="feedback-box"><a href="/about/contact_form.html?to=3&subject=Feedback: JDK 7 Support in NetBeans IDE 7.0: A Quick Overview">Envie-nos Seu Feedback</a></div> |
| <br style="clear:both;" /> |
| <h2><a name="nextsteps"></a>Próximas Etapas</h2> |
| <p>Para obter mais informações sobre o JDK 7 e o NetBeans IDE, consulte: </p> |
| <ul> |
| <li><a href="http://wiki.netbeans.org/NewAndNoteworthyNB70#JDK7_support" target="_blank">Novidades e Destaques no 7.0</a> - para obter mais informações sobre o que foi implementado no NetBeans IDE.</li> |
| <li><a href="http://blogs.sun.com/arungupta/entry/screencast_35_jdk_7_project" target="_blank">Demonstração: Funcionalidades do Projeto Coins do JDK 7 no NetBeans IDE 7.0 Beta</a> - uma demonstração em vídeo do suporte às funcionalidades do JDK 7 no NetBeans IDE. </li> |
| <li><a href="http://download.oracle.com/javase/tutorial/essential/io/fileio.html" target="_blank">Os Tutoriais do Java: E/S de Arquivos</a> - uma seção nos tutoriais do Java que contém numerosos exemplos das mudanças do JDK 7 em E/S.</li> |
| <li><a href="http://download.oracle.com/javase/tutorial/essential/concurrency/forkjoin.html" target="_blank">Os Tutoriais do Java: Fork e Join</a> - explicação no novo framework de fork/join no JDK7. </li> |
| </ul> |
| |
| <p>Para obter mais informações sobre o desenvolvimento de aplicações Java no NetBeans IDE, veja: </p> |
| <ul> |
| <li><a href="javase-intro.html">Desenvolvendo Aplicações Java Gerais</a></li> |
| <li><a href="editor-codereference.html">Assistência de Código no Editor Java do NetBeans IDE</a></li> |
| <li><a href="../../trails/java-se.html">Trilha de Aprendizado do Desenvolvimento Geral em Java</a></li> |
| </ul> |
| </body> |
| </html> |