<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
Copyright (c) 2009 - 2014, Oracle and/or its affiliates. All rights reserved.
-->

<html>
    <head>
        <title>Tutorial para Início Rápido do Java do 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 very simple and quick introduction to the NetBeans IDE workflow by walking you through the creation of a simple Hello World Java console application." >
    </head>

    <body>

        <h1>Tutorial para Início Rápido do Java do NetBeans IDE</h1>

        <p>Bem-vindo ao NetBeans IDE!</p>
        <p>Este tutorial oferece uma introdução simples e rápida ao fluxo de trabalho do NetBeans IDE, orientando você na criação de uma aplicação de console simples do "Hello World" de Java. Após concluir este tutorial, você terá adquirido um conhecimento geral sobre como criar e executar aplicações no IDE.</p>
        <p>Este tutorial leva menos de 10 minutos para ser concluído.</p>
        <p>Depois que você finalizar este tutorial, poderá acessar as trilhas de aprendizado por meio da página <a href="../../index.html">Documentação, Treinamento e Suporte</a>. As trilhas de aprendizado oferecem tutoriais abrangentes que realçam uma ampla gama de funcionalidades do IDE e técnicas de programação para uma variedade de tipos de aplicações. Se não desejar criar uma aplicação "Hello World", é possível ignorar este tutorial e ir direito para as trilhas de aprendizado.
        </p>
        <p><b>Conteúdo</b></p>
        <img alt="O conteúdo desta página se aplica ao NetBeans IDE 7.2 e versões posteriores" class="stamp" src="../../../images_www/articles/73/netbeans-stamp-80-74-73.png" title="O conteúdo desta página se aplica ao NetBeans IDE 7.2 e versões posteriores">
        <ul class="toc">
            <li><a href="#setup" title="Configurando o Projeto">Configurando o Projeto</a></li>
            <li><a href="#code" title="Adicionando Código ao Arquivo de Origem Gerado">Adicionando Código ao Arquivo de Origem Gerado</a></li>
            <li><a href="#run" title="Compilando e Executando o Programa">Compilando e Executando a Aplicação</a></li>
            <li><a href="#build" title="Construindo e Implantando a Aplicação">Construindo e Implantando a Aplicação</a></li>
            <li><a href="#nextsteps" title="Próximas Etapas">Próximas Etapas</a></li>
        </ul>

        <p><b>Para concluir este tutorial, você precisa dos seguintes recursos e softwares.</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="https://netbeans.org/downloads/index.html">NetBeans IDE</a></td>
                    <td class="tbltd1">versão 7.2, 7.3, 7.4 ou 8.0</td>
                </tr>
                <tr>
                    <td class="tbltd1"><a href="http://java.sun.com/javase/downloads/index.jsp">JDK (Java Development Kit)</a></td>
                    <td class="tbltd1">versão 6, 7 ou 8</td>
                </tr>

            </tbody>
        </table>

        <h2>Configurando o Projeto<a name="setup"></a></h2>
        <p>Para criar um projeto do IDE:</p>

        <ol>
            <li>Inicie o NetBeans IDE.</li>
            <li>No IDE, escolha Arquivo > Novo Projeto, como mostrado na figura abaixo.
                <p class="align-center"><img alt="Netbeans IDE com o item de menu Arquivo &gt;Novo Projeto selecionado." class="margin-around" src="../../../images_www/articles/72/java/quickstart/new-proj.png"></p>
          </li>
            <li>No assistente Novo Projeto, expanda a categoria Java e selecione Aplicação Java, como mostrado na figura abaixo. Em seguida, clique em Próximo.
               
			   <p class="align-center">
		<a href="../../../images_www/articles/72/java/quickstart/proj-wizard.png" rel="lytebox" title="Assistente de Novo Projeto: Selecionar Projeto"> <img alt="Assistente de Novo Projeto: Selecionar Projeto" border="1" src="../../../images_www/articles/72/java/quickstart/proj-wizard-small.png"></a></p>
            </li>
            <li>Na página Nome e Localização do assistente, adote o procedimento a seguir (como mostrado na figura abaixo):

                <ul>
                    <li>no campo Nome do Projeto, digite <code>HelloWorldApp</code>.</li>
                    <li>Deixe desmarcada a caixa de seleção Utilizar Pasta Dedicada para Armazenar Bibliotecas.</li>
                    <li>No campo Criar Classe Principal, digite <code>helloworldapp.HelloWorldApp</code>.</li>
                    
                </ul>
                
				<p class="align-center"><a href="../../../images_www/articles/72/java/quickstart/proj-wizard2.png" rel="lytebox" title="Assistente de Novo Projeto: Nome e Local"> <img alt="Assistente de Novo Projeto: Nome e Local" border="1" src="../../../images_www/articles/72/java/quickstart/proj-wizard2-small.png"></a></p>
            </li>
            <li>Clique em Finalizar.</li>
        </ol>
        <p>O projeto é criado e aberto no IDE. Agora você deve ver os seguintes componentes:</p>
        <ul>
            <li>A janela Projetos, que contém uma view em árvore dos componentes do projeto, incluindo arquivos de código-fonte, bibliotecas de que seu código depende, e assim por diante.
            </li>
            <li>A janela Editor de Código-fonte com um arquivo chamado <code>HelloWorldApp</code> é aberta.
            </li>
            <li>A janela Navegador, que você pode utilizar para navegar rapidamente entre elementos dentro da classe selecionada.</li>
            
        </ul>
        
		<p class="align-center"> <a href="../../../images_www/articles/72/java/quickstart/proj-opened.png" rel="lytebox" title="Netbeans IDE com o projeto HelloWorldApp aberto."> <img alt="Netbeans IDE com o projeto HelloWorldApp aberto." border="1" src="../../../images_www/articles/72/java/quickstart/proj-opened-small.png"></a></p>
        <h2><a name="code"></a>Adicionando Código ao Arquivo de Origem Gerado
        </h2>
        <p>Como a caixa de seleção Criar Classe Principal foi marcada no assistente de Novo Projeto, o IDE criou uma classe principal de esqueleto. Você pode adicionar a mensagem "Hello World!" ao código de esqueleto substituindo a linha:</p>

        <pre class="examplecode">
            // TODO code application logic here
        </pre>

        pela linha:

        <pre class="examplecode">
            System.out.println(&quot;Hello World!&quot;);
        </pre>

        <p>Salve a alteração escolhendo Arquivo > Salvar.</p>

        <p>O arquivo deve ter uma aparência semelhante à seguinte amostra de código.</p>
        <pre class="examplecode">
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package helloworldapp;

/**
 *
 * @author &lt;your name&gt;
 */
public class HelloWorldApp {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
            System.out.println(&quot;Hello World!&quot;);
    }

}

        </pre>

        <a name="run"></a><h2>Compilando e Executando o Programa</h2>
        <p>Devido à funcionalidade Compilar ao Salvar do IDE, não é necessário compilar manualmente o projeto para que seja executado no IDE. Quando um arquivo de código-fonte Java é salvo, ele é compilado automaticamente pelo IDE.</p>
        <p class="notes">A funcionalidade Compilar ao Salvar pode ser desativado na janela Propriedades do Projeto. Clique com o botão direito do mouse no projeto e selecione Propriedades. Na janela Propriedades, escolha a guia Compilação. A caixa de seleção Compilar ao Salvar está na parte superior. Observe que, na janela Propriedades do Projeto, é possível configurar várias definições para o projeto: bibliotecas do projeto, encapsulamento, construção, execução, etc. </p>
        <p><b>Para executar o programa:</b></p>
        <ul>
            <li>Escolha Executar > Executar Projeto.</li>
        </ul>

        <p>A figura abaixo mostra o que você deve ver agora.</p>
        <p class="align-center"><img ALT="O programa Imprime Hello World! para a Janela de Saída (juntamente com outra saída do script de construção)." class="margin-around" src="../../../images_www/articles/72/java/quickstart/run-output.png"></p>
        <p>
            Parabéns! Seu programa funciona!
        </p>

        <p>Se houver erros de compilação, eles são marcados com glifos vermelhos nas margens esquerda e direita do Editor de Código-fonte. Os glifos da margem esquerda indicam os erros das linhas correspondentes. Os glifos da margem direita mostram todas as áreas do arquivo que apresentam erros, incluindo os erros das linhas que não estão visíveis. É possível passar o mouse sobre a marca do erro para ver a descrição deste erro. É possível clicar em um glifo da margem direita para ir para a linha que apresenta o erro.
        </p>

        <a name="build"></a>
        <h2>Construindo e Implantando a Aplicação </h2>

        <p>Depois de escrever e executar o teste da aplicação, você pode utilizar o comando Limpar e Construir para construir a aplicação para implantação. Quando o comando Limpar e Construir é utilizado, o IDE executa um script de construção que realiza as seguintes tarefas:</p>
        <ul>
            <li>Deleta os arquivos compilados anteriormente e outras saídas de construção.</li>
            <li>Recompila a aplicação e constrói um arquivo JAR que contém arquivos compilados.</li>
        </ul>
        <p><b>Para construir sua aplicação:</b></p>
        <ul>
            <li>Escolha Executar > Limpar e Construir Projeto.  </li>
        </ul>

        <p>É possível exibir as saídas de construção abrindo a janela Arquivos e expandindo o nó <tt>HelloWorldApp</tt>. O arquivo bytecode compilado <code>HelloWorldApp.class</code> está no subnó <code>build/classes/helloworldapp</code>. O arquivo JAR implantável que contém o <code>HelloWorldApp.class</code> está no nó <code>dist</code>.</p>
        <p class="align-center"><img alt="Imagem mostrando os Arquivos com nós para a janela HelloWorldApp expandida para mostrar o conteúdo dos subnós build e dist." class="margin-around" src="../../../images_www/articles/72/java/quickstart/files-window.png"></p>
<p>Agora você sabe como executar algumas das tarefas de programação mais comuns no IDE.</p>
<p>Para obter informações sobre como executar a aplicação da linha de comando, consulte o capítulo <a href="javase-deploy.html#startapp" target="_blank">Iniciando a Aplicação Java</a> do tutorial Empacotando e Distribuindo Aplicações Java. </p>

        <div class="feedback-box"><a href="/about/contact_form.html?to=3&subject=Feedback:%20NetBeans%20IDE%20Java%20Quick%20Start%20Tutorial">Enviar Feedback neste Tutorial</a></div>
       <br style="clear:both;">
        <h2><a name="nextsteps"></a>Consulte Também</h2>
      
        <p>Para obter informações sobre como criar e trabalhar com projetos Java padrão e de formato livre, consulte <a href="http://www.oracle.com/pls/topic/lookup?ctx=nb8000&amp;id=NBDAG366">Criando Projetos Java</a> em <i>Desenvolvendo Aplicações com o NetBeans IDE</i>.</p>
        <p>Para saber mais sobre o fluxo de trabalho do IDE para o desenvolvimento de aplicações Java, incluindo o gerenciamento de classpath, consulte <a href="javase-intro.html">Desenvolvendo Aplicações Java Gerais</a>.</p>
       
		<p>Para obter instruções detalhadas sobre como compilar e executar uma aplicação "Hello World!" simples no seu sistema operacional, consulte a lição <a href="http://docs.oracle.com/javase/tutorial/getStarted/cupojava/index.html" target="_blank">The "Hello World" Application</a> dos Tutoriais Java.</p>
		
        <p>Para localizar informações específicas do tipo de aplicações que você está desenvolvendo, use a trilha de aprendizado do NetBeans IDE para aquele tipo de aplicação. Cada trilha do aprendizado contém uma série de tutoriais e guias que variam em escopo do básico ao avançado. As seguintes trilhas do aprendizado estão disponíveis:</p>
        <table width="100%">
            <tr>
                <td>
                    <ul>
                        <li><a href="../../trails/java-se.html">Desenvolvimento Geral em Java</a></li>
                        <li><a href="../../trails/tools.html">Integração com Ferramentas e Serviços Externos</a></li>
                        <li><a href="../../trails/matisse.html">Aplicações de GUI do Java</a></li>
                        <li><a href="../../trails/web.html">Aplicações de Web Services</a></li>
                        <li><a href="../../trails/java-ee.html">Aplicações Java EE e Java Web</a></li>
                    </ul>
                </td>
                <td>
                    <ul>
                        <li><a href="../../trails/php.html">Aplicações PHP e HTML5</a></li>
                        <li><a href="../../trails/platform.html">Plataforma e Desenvolvimento do Módulo do NetBeans</a></li>
                        <li><a href="../../trails/cnd.html">Aplicações C/C++</a></li>
                        <li><a href="../../trails/mobility.html">Aplicações Móveis</a></li>
                    </ul>
              </td>
            </tr>
        </table>

    </body>
</html>
