blob: 049f6911655c77190d5c7cda012de7e923c253ad [file] [log] [blame]
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
= Visão Geral do Suporte a JDK 8 no NetBeans IDE
:jbake-type: tutorial
:jbake-tags: tutorials
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Visão Geral do Suporte a JDK 8 no NetBeans IDE - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Visão Geral do Suporte a JDK 8 no NetBeans IDE
Escrito por Tomas Zezula e Alyona Stashkova
Neste tutorial, você aprenderá conceitos básicos sobre o JDK 8 no NetBeans IDE e como usar o suporte do IDE para as funcionalidades de Java SE 8 como perfis compactos, expressões lambda e anotações de repetição.
*Conteúdo*
image::images/netbeans-stamp-80-74.png[title="O conteúdo desta página se aplica ao NetBeans IDE 7.4 e 8.0 Beta"]
*Para concluir este tutorial, você precisa do software e dos recursos apresentados na tabela a seguir.*
|===
|Software ou Recurso |Versão Necessária
|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |versão 7.4 e 8.0
|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+JDK (Java Development Kit)+] |versão 8
|===
== Ativando o Suporte do JDK 8 no NetBeans IDE
Depois que o JDK 8 for submetido a download e instalado em seu sistema, ele precisa ser registrado no IDE como segue:
1. No IDE, selecione Ferramentas > Plataformas Java no menu principal.
2. Clique em Adicionar Plataforma na caixa de diálogo Gerenciador de Plataforma Java.
3. Na caixa de diálogo Adicionar Plataforma Java, selecione Edição Padrão Java e clique em Próximo.
4. Especifique o diretório que contém o JDK e clique em Próximo.
[.feature]
--
image::images/jdk8_small.png[role="left", link="images/jdk8.png"]
--
[start=5]
. Verifique se os locais default do arquivo zip Códigos-fonte da Plataforma e da documentação da API são válidos. Clique em Finalizar para fechar a caixa de diálogo Adicionar Plataforma Java.
O JDK 8 é registrado como uma plataforma no IDE.
[.feature]
--
image::images/jdk8registered_small.png[role="left", link="images/jdk8registered.png"]
--
[start=6]
. Assegure-se de que o JDK 1.8 esteja selecionado na lista Plataformas e clique em Fechar.
== Configurando um Projeto para usar JDK 8
Depois de registrar o JDK 8 no IDE, seu projeto precisa ser configurado para usar o JDK 8 para compilar, executar e depurar.
Começaremos criando um novo projeto Java SE com o exemplo do jogo de Anagramas que é enviado com o NetBeans IDE.
1. No IDE, escolha Arquivo > Novo Projeto.
2. No assistente Novo Projeto, expanda a categoria Amostras e selecione Java.
3. Escolha o Jogo de Anagramas na lista Projetos. Em seguida, clique em Próximo.
4. No painel Nome e Local, deixe os valores default para os campos Nome do Projeto e Localização do Projeto.
5. Clique em Finalizar.
O IDE cria e abre o projeto Java SE na janela Projetos.
*Para configurar seu projeto, use o JDK 8:*
1. Clique com o botão direito do mouse no projeto Jogo de Anagramas na janela Projetos e selecione as Propriedades no menu de contexto.
2. Na caixa de diálogo Propriedades do Projeto, escolha a categoria Bibliotecas e defina JDK 1.8 como a Plataforma Java.
[.feature]
--
image::images/prj_jdk8_small.png[role="left", link="images/prj_jdk8.png"]
--
[start=3]
. Selecione a Categoria Código-fonte e defina o Formato de Código-origem/Binário para JDK 8.
[.feature]
--
image::images/prj_source_jdk8_small.png[role="left", link="images/prj_source_jdk8.png"]
--
[start=4]
. Clique em OK para salvar as alterações.
Seu projeto está definido para reconhecer as novas funcionalidades de linguagem do JDK 8.
== Usando Suporte de Perfis Compacto
O Java SE 8 apresenta os link:http://openjdk.java.net/jeps/161[+perfis do subconjunto da especificação da plataforma do Java SE+] que podem ser usados para implantar e executar aplicações que não exigem a plataforma completa.
Os três perfis que foram definidos até agora são chamados _compact1_, _compact2_ e _compact3_. Cada perfil especifica um conjunto específico de pacotes de Java API e contém todas as APIs nos perfis menores que ele próprio: _compact1_ é um subconjunto de _compact2_, que é um subconjunto de _compact3_, que por sua vez é um subconjunto de _JRE completo_. A tabela abaixo lista os pacotes que são compostos em cada perfil.
|===
|Compact1 |Compact2 |Compact3 |JRE completo
|* java.lang
* java.io
* java.nio
* java.text
* java.math
* java.net
* javax.net
* java.util
* java.util.logging
* java.security
* javax.crypto
* javax.security
|_compact1_ mais o seguinte:
* java.sql
* javax.sql
* javax.xml
* org.w3c.dom
* org.xml.sax
* java.rmi
* javax.rmi
* javax.transaction
|_compact2_ mais o seguinte:
* java.lang.management
* javax.management
* javax.naming
* javax.sql.rowset
* javax.security.auth.kerberos
* org.ietf.jgss
* javax.script
* javax.xml.crypto
* java.util.prefs
* javax.security.sasl
* javax.security.acl
* java.lang.instrument
* javax.annotation.processing
* javax.lang.model
* javax.lang.model.element
* javax.lang.model.type
* javax.lang.model.util
* javax.tools
|_compact3_ mais o seguinte:
* corba
* awt
* swing
|===
O IDE permite que você alterne entre os perfis e o JRE completo, quando necessário.
*Para definir um perfil do projeto para um Projeto Java SE:*
1. Clique com o botão direito do mouse e escolha Propriedades no menu de contexto.
2. Na caixa de diálogo Propriedades do projeto, selecione a categoria Executar Códigos-fontes.
3. Use a lista drop-down Perfil para especificar o perfil JDK 8 que sua aplicação suportará.
[.feature]
--
image::images/prj_src_profile_small.png[role="left", link="images/prj_src_profile.png"]
--
[start=4]
. Clique em OK.
Para verificar como o IDE verifica se as classes usadas em seu projeto pertencem ao perfil especificado, selecione Compact1 como perfil para o projeto Jogo de Anagramas e clique em OK.
O IDE exibe os erros para notificar que o projeto Jogo de Anagramas não é compatível com o projeto _compact1_.
[.feature]
--
image::images/profile_small.png[role="left", link="images/profile.png"]
--
Você pode voltar e definir o perfil do projeto Jogo de Anagramas para JRE Completo que é suportado pela aplicação Anagramas.
== Usando Suporte de Expressões Lambda
link:http://openjdk.java.net/projects/lambda/[+Expressões de Lambda+] trata o volume de classes internas anônimas, expressando funcionalidade de classes internas anônimas de forma mais compacta.
A sintaxe geral de uma expressão lambda consiste em um conjunto de parâmetros, um token de seta e um corpo de função (uma expressão simples ou um bloco de instrução):
[source,java]
----
(int a, int b) -> a * a + b * b;
----
O NetBeans IDE detecta expressões pré-lamba e exibe as dicas no Editor propondo ativar tais construções nas expressões lambda.
Por exemplo, o projeto Jogo de Anagramas caracteriza uma construção pré-lamda no arquivo ``Anagrams.java`` , conforme a tela abaixo.
[.feature]
--
image::images/lambda_small.png[role="left", link="images/lambda.png"]
--
Depois que você clicar na lâmpada na margem ou pressionar Alt-Enter, o IDE mostra a dica Usar Lambda com um conjunto de opções disponíveis:
[.feature]
--
image::images/lambda_clicked_small.png[role="left", link="images/lambda_clicked.png"]
--
Se a dica Usar Lambda estiver selecionada, o IDE converterá a classe interna anônima em uma expressão lambda.
[.feature]
--
image::images/lambda_converted_small.png[role="left", link="images/lambda_converted.png"]
--
Se você escolher a opção Executar Inspeção em, o IDE exibirá a caixa de diálogo Inspecionar que permite executar uma Conversão única para inspeção de Lambda no arquivo especificado.
*Observação:* para obter mais informações sobre como iniciar a operação Inspecionar no IDE, consulte link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG613[+Usando Dicas na Análise do Código-Fonte e Refatorando+] em _Desenvolvendo Aplicações com o NetBeans IDE_.
[.feature]
--
image::images/inspect_small.png[role="left", link="images/inspect.png"]
--
Após pressionar o botão Inspecionar para acionar a inspeção, o IDE identifica todas as construções pré-lamba do arquivo e as exibe na janela Inspetor.
[.feature]
--
image::images/lambda_inspection_small.png[role="left", link="images/lambda_inspection.png"]
--
Se você escolher a opção Executar Transformação da Inspeção, o IDE exibirá a caixa de diálogo Inspecionar e Transformar que permite executar uma inspeção Converter para Lambda única (ou uma configuração selecionada) no código especificado e refatorá-la, se necessário.
*Observação:* para obter mais informações sobre a operação Inspecionar e Transformar, consulte link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG613[+Usando Dicas na Análise do Código-Fonte e Refatorando+] em _Desenvolvendo Aplicações com o NetBeans IDE_.
[.feature]
--
image::images/lambda_transform_small.png[role="left", link="images/lambda_transform.png"]
--
== Usando Suporte de Anotações de Repetição
As funcionalidades do Java SE 8 incluem link:http://openjdk.java.net/jeps/120[+anotações de repetição+] que permitem que você aplique anotações com o mesmo tipo para um elemento do programa único, conforme mostrado no seguinte exemplo do código:
[source,java]
----
@ProjectServiceProvider(service=Foo.class,"org-nebeans-modules-j2seproject")
@ProjectServiceProvider(service=Foo.class,"org-nebeans-modules-j2eeproject")
public class MyService extends Foo {}
----
O suporte do NetBeans IDE para anotações de repetição permite que você grave o código com as mesmas anotações fornecidas e tipos da anotação incluída que são declarados:
* um tipo de anotação repetida deve ser marcada com ``@Repeatable ()`` ; caso contrário, você tem um erro na compilação
* um tipo de anotação incluído deve ter um elemento ``value`` com um tipo de array; o tipo de componente do tipo de array deve ser um tipo de anotação repetida
link:/about/contact_form.html?to=3&subject=Feedback:%20Overview%20of%20JDK%208%20Support%20in%20NetBeans%20IDE[+Enviar Feedback neste Tutorial+]
== Consulte Também
Para obter mais informações sobre JDK 8, consulte:
* link:http://jdk8.java.net/[+Projeto JDK 8+]
* link:http://download.java.net/jdk8/docs/[+Documentação de Acesso Antecipado do Java Platform Standard Edition 8+]
* link:http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/Lambda-QuickStart/index.html[+Java SE 8: Início Rápido do Lambda +]
* link:http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html[+Os Tutoriais do Java: Expressões Lambda+]
* link:http://docs.oracle.com/javase/tutorial/java/annotations/repeating.html[+Os Tutoriais do Java: Anotações de Repetição+]
Para obter mais informações sobre o desenvolvimento de aplicações Java no NetBeans IDE, veja:
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG366[+Criando Projetos Java+] em _Desenvolvendo Aplicações com o NetBeans IDE_
* link:javase-intro.html[+Desenvolvendo Aplicações Java Gerais+]
* link:../../trails/java-se.html[+Trilha de Aprendizado do Desenvolvimento Geral em Java+]