<!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>Tutorial de in&iacute;cio r&aacute;pido de 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 de in&iacute;cio r&aacute;pido de Java do NetBeans IDE</h1>

        <p>Bem-vindo ao NetBeans IDE!</p>
        <p>Este tutorial oferece uma introdu&ccedil;&atilde;o simples e r&aacute;pida ao fluxo de trabalho do NetBeans IDE, orientando voc&ecirc; na cria&ccedil;&atilde;o de um aplicativo de console simples do &quot;Hello world&quot; de Java. Ap&oacute;s concluir este tutorial, voc&ecirc; ter&aacute; adquirido um conhecimento geral sobre como criar e executar aplicativos no IDE.</p>
        <p>Este tutorial leva menos de 10 minutos para ser conclu&iacute;do.</p>
        <p>Depois de concluir este tutorial, &eacute; poss&iacute;vel ir para as trilhas do aprendizado, que s&atilde;o vinculadas a partir da p&aacute;gina <a href="../../index.html">Documenta&ccedil;&atilde;o, treinamento e suporte</a>. Os caminhos do aprendizado oferecem tutoriais abrangentes que real&ccedil;am uma ampla gama de recursos do IDE e t&eacute;cnicas de programa&ccedil;&atilde;o para uma variedade de tipos de aplicativos. Se n&atilde;o desejar criar um aplicativo &quot;Hello world&quot;, &eacute; poss&iacute;vel ignorar este tutorial e ir direito para os caminhos do aprendizado.
        </p>
        <p><b>Conte&uacute;do</b></p>
        <img  src="../../../images_www/articles/69/netbeans-stamp-69-70-71.png" class="stamp" alt="O conte&uacute;do desta p&aacute;gina se aplica ao NetBeans IDE 6.9 e posterior" title="O conte&uacute;do desta p&aacute;gina se aplica ao NetBeans IDE 6.9 e posterior">
        <ul class="toc">
            <li><a href="#setup" title="Configurando o projeto">Configurando o projeto</a></li>
            <li><a href="#code" title="Adicionando c&oacute;digo ao arquivo de c&oacute;digo-fonte gerado">Adicionando c&oacute;digo ao arquivo de c&oacute;digo-fonte gerado</a></li>
            <li><a href="#run" title="Compilando e executando o programa">Compilando e executando o aplicativo</a></li>
            <li><a href="#build" title="Construindo e implantando o aplicativo">Construindo e implantando o aplicativo</a></li>
            <li><a href="#nextsteps" title="Pr&oacute;ximas etapas">Pr&oacute;ximas etapas</a></li>
        </ul>

        <p><b>Para concluir este tutorial, s&atilde;o necess&aacute;rios os seguintes recursos e softwares.</b></p>

        <table>
            <tbody>
                <tr>
                    <th class="tblheader" scope="col">Software ou recurso</th>
                    <th class="tblheader" scope="col">Vers&atilde;o necess&aacute;ria</th>
                </tr>
                <tr>
                    <td class="tbltd1"><a href="https://netbeans.org/downloads/index.html">NetBeans IDE</a></td>
                    <td class="tbltd1">vers&atilde;o 6.9 e posterior</td>
                </tr>
                <tr>
                    <td class="tbltd1"><a href="http://java.sun.com/javase/downloads/index.jsp">Java Development Kit (JDK)</a></td>
                    <td class="tbltd1">vers&atilde;o 6 ou vers&atilde;o 7</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 &gt; Novo projeto (Ctrl-Shift-N), como mostrado na figura abaixo.
                <p class="align-center"><img src="../../../images_www/articles/71/java/quickstart/new-proj.png" alt="NetBeans IDE com os itens de menu Arquivo &gt; Novo projeto selecionados." class="margin-around"></p>
            </li>
            <li>No assistente para Novo projeto, expanda a categoria Java e selecione Aplica&ccedil;&atilde;o Java, como mostrado na figura abaixo. Em seguida clique em Pr&oacute;ximo.
               <p class="align-center"> <img src="../../../images_www/articles/71/java/quickstart/proj-wizard.png" alt="NetBeans IDE, assistente para Novo projeto, p&aacute;gina Escolher projeto." class="margin-around"></p>
            </li>
            <li>Na p&aacute;gina Nome e localiza&ccedil;&atilde;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 verifica&ccedil;&atilde;o Utilizar pasta dedicada para armazenar bibliotecas.</li>
                    <li>No campo Criar classe principal, digite <code>helloworldapp.HelloWorldApp</code>.</li>
                    <li>Deixe marcada a caixa de verifica&ccedil;&atilde;o Definir como projeto principal.</li>
                </ul>
                <p class="align-center"><img src="../../../images_www/articles/71/java/quickstart/proj-wizard2.png" alt="NetBeans IDE, assistente Novo projeto, p&aacute;gina Nome e localiza&ccedil;&atilde;o."  class="margin-around"></p>
            </li>
            <li>Clique em Terminar.</li>
        </ol>
        <p>O projeto &eacute; criado e aberto no IDE. Agora voc&ecirc; deve ver os seguintes componentes:</p>
        <ul>
            <li>A janela Projetos, que cont&eacute;m uma visualiza&ccedil;&atilde;o em &aacute;rvore dos componentes do projeto, incluindo arquivos de c&oacute;digo-fonte, bibliotecas de que seu c&oacute;digo depende, e assim por diante.
            </li>
            <li>A janela Editor de c&oacute;digo-fonte com um arquivo chamado <code>HelloWorldApp</code> &eacute; aberta.
            </li>
            <li>A janela Navegador, que voc&ecirc; pode utilizar para navegar rapidamente entre elementos dentro da classe selecionada.</li>
            <li>A janela Tarefas, que lista os erros de compila&ccedil;&atilde;o bem como outras tarefas marcadas com palavras-chave como XXX e TODO.</li>
        </ul>
        <p class="align-center"><img src="../../../images_www/articles/71/java/quickstart/proj-opened.png"  alt="O NetBeans IDE com o projeto HelloWorldApp aberto." class="margin-around"></p>
        <h2><a name="code"></a>Adicionando c&oacute;digo ao arquivo de origem gerado
        </h2>
        <p>Como a caixa de verifica&ccedil;&atilde;o Criar classe principal foi marcada no assistente de Novo projeto, o IDE criou uma classe principal de esqueleto. Voc&ecirc; pode adicionar a mensagem &quot;Hello World!&quot; ao c&oacute;digo de esqueleto substituindo a linha:</p>

        <pre class="examplecode">
            // TODO l&oacute;gica de aplica&ccedil;&atilde;o do c&oacute;digo aqui
        </pre>

        com a linha:

        <pre class="examplecode">
            System.out.println(&quot;Hello World!&quot;);
        </pre>

        <p>Salve a altera&ccedil;&atilde;o escolhendo Arquivo &gt; Salvar.</p>

        <p>O arquivo deve ter uma apar&ecirc;ncia semelhante &agrave; seguinte amostra de c&oacute;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 ao recurso Compilar ao salvar do IDE, n&atilde;o &eacute; necess&aacute;rio compilar manualmente o projeto para que seja executado no IDE. Quando um arquivo de c&oacute;digo-fonte Java &eacute; salvo, ele &eacute; compilado automaticamente pelo IDE.</p>
        <p class="notes">O recurso Compilar na grava&ccedil;&atilde;o pode ser desativado na janela Propriedades do projeto. Clique com o bot&atilde;o direito do mouse no projeto e selecione Propriedades. Na janela Propriedades do projeto, escolha a guia Compila&ccedil;&atilde;o. A caixa de verifica&ccedil;&atilde;o Compilar ao salvar est&aacute; bem na parte superior. Note que, na janela Propriedades do projeto, &eacute; poss&iacute;vel definir v&aacute;rias configura&ccedil;&otilde;es para o projeto: bibliotecas do projeto, empacotamento, constru&ccedil;&atilde;o, execu&ccedil;&atilde;o, etc. </p>
        <p><b>Para executar o programa:</b></p>
        <ul>
            <li>Escolha Executar &gt; Executar projeto principal (F6).</li>
        </ul>

        <p>A figura abaixo mostra o que voc&ecirc; deve ver agora.</p>
        <p class="align-center"><img src="../../../images_www/articles/71/java/quickstart/run-output.png" ALT="O programa imprime Hello World! &agrave; janela Sa&iacute;da (junto com outra sa&iacute;da do script de constru&ccedil;&atilde;o)." class="margin-around"></p>
        <p>
            Parab&eacute;ns! Seu programa funciona!
        </p>

        <p>Se houver erros de compila&ccedil;&atilde;o, eles s&atilde;o marcados com glifos vermelhos nas margens esquerda e direita do Editor de c&oacute;digo-fonte. Os glifos da margem esquerda indicam os erros das linhas correspondentes. Os glifos da margem direita mostram todas as &aacute;reas do arquivo que apresentam erros, incluindo os erros das linhas que n&atilde;o est&atilde;o vis&iacute;veis. &Eacute; poss&iacute;vel passar o mouse sobre a marca do erro para ver a descri&ccedil;&atilde;o deste erro. &Eacute; poss&iacute;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 o aplicativo </h2>

        <p>Depois de escrever e executar o teste do aplicativo, voc&ecirc; pode utilizar o comando Limpar e construir para construir o aplicativo para deployment. Quando o comando Limpar e construir &eacute; utilizado, o IDE executa um script de constru&ccedil;&atilde;o que realiza as tarefas a seguir:</p>
        <ul>
            <li>exclui os arquivos compilados anteriormente e outras sa&iacute;das de constru&ccedil;&atilde;o.</li>
            <li>Recompila o aplicativo e constr&oacute;i um arquivo JAR que cont&eacute;m arquivos compilados.</li>
        </ul>
        <p><b>Para construir seu aplicativo:</b></p>
        <ul>
            <li>Escolha Executar &gt; Limpar e construir projeto principal (Shift-F11)  </li>
        </ul>

        <p><tt>&Eacute; poss&iacute;vel ver as sa&iacute;das de constru&ccedil;&atilde;o abrindo a janela Arquivos e expandindo o n&oacute; HelloWorldApp</tt>. O arquivo bytecode compilado <code>HelloWorldApp.class</code> est&aacute; no subn&oacute; <code>build/classes/helloworldapp</code>. O arquivo JAR implant&aacute;vel que cont&eacute;m o <code>HelloWorldApp.class</code> est&aacute; no n&oacute; <code>dist</code>.</p>
        <p class="align-center"><img src="../../../images_www/articles/71/java/quickstart/files-window.png"
         alt="Imagem que mostra a janela Arquivos com os n&oacute;s de HelloWorldApp expandidos para mostrar o conte&uacute;do dos subn&oacute;s build e dist." class="margin-around"></p>

<p>Para informa&ccedil;&otilde;es sobre como executar o aplicativo na linha de comando para o seu sistema operacional, consulte a li&ccedil;&atilde;o <a href="http://docs.oracle.com/javase/tutorial/getStarted/cupojava/index.html" target="_blank">&quot;O aplicativo 'Hello World'&quot;</a> dos tutoriais Java. </p>
<p>&nbsp;</p>

        <div class="feedback-box"><a href="/about/contact_form.html?to=3&subject=Feedback: NetBeans IDE Java Quick Start Guide">Envie-nos seus coment&aacute;rios</a></div>
        <p>&nbsp;</p>
        <h2><a name="nextsteps"></a>Pr&oacute;ximas etapas</h2>
        <p>Agora voc&ecirc; sabe como executar algumas das tarefas de programa&ccedil;&atilde;o mais comuns no IDE.</p>

        <p>Para saber mais sobre o fluxo de trabalho do IDE para o desenvolvimento de aplicativos Java, incluindo o gerenciamento de classpath, consulte <a href="../../docs/java/javase-intro.html">Desenvolvendo aplicativos gerais Java</a>.</p>
        <p>Para obter mais informa&ccedil;&otilde;es sobre a implementa&ccedil;&atilde;o de aplicativos de Java Desktop, consulte <a href="../../docs/java/javase-deploy.html">Empacotamento e distribui&ccedil;&atilde;o de aplicativos Java Desktop</a>.</p>
        <p>Para localizar informa&ccedil;&otilde;es espec&iacute;ficas do tipo de aplicativo que voc&ecirc; est&aacute; desenvolvendo, utilize a trilha do aprendizado do NetBeans IDE para esse tipo de aplicativo. Cada trilha do aprendizado cont&eacute;m uma s&eacute;rie de tutoriais e guias que variam em escopo do b&aacute;sico ao avan&ccedil;ado. As seguintes trilhas do aprendizado est&atilde;o dispon&iacute;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&ccedil;&atilde;o com ferramentas e servi&ccedil;os externos</a></li>
                        <li><a href="../../trails/matisse.html">Aplicativos de GUI em Java</a></li>
                        <li><a href="../../trails/web.html">Aplicativos de servi&ccedil;o da Web</a></li>
                        <li><a href="../../trails/java-ee.html">Aplicativos Web Java e Java EE</a></li>
                    </ul>
                </td>
                <td>
                    <ul>
                        <li><a href="../../trails/php.html">Aplicativos PHP</a></li>
                        <li><a href="../../trails/platform.html">Desenvolvimento de m&oacute;dulo e a plataforma NetBeans</a></li>
                        <li><a href="../../trails/cnd.html"> Aplicativos C/C++</a></li>
                        <li><a href="../../trails/mobility.html">Aplicativos m&oacute;veis</a></li>
                    </ul>
              </td>
            </tr>
        </table>

    </body>
</html>
