<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Instrucciones de Instalaci&oacute;n de NetBeans IDE 6.1</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
    <meta name="description" content="Installation instructions for the NetBeans IDE 6.1">
  </head>
  <body>

    <a name="top"></a>
    <h1>Instrucciones de Instalaci&oacute;n de NetBeans IDE 6.1</h1>
    <div class="articledate" style="margin-left: 0px;">Última actualizaci&oacute;n:
      <!-- #BeginDate format:Am1 -->August 9, 2012<!-- #EndDate -->
    </div>
    <p>
      Este documento describe como instalar NetBeans IDE 6.1 en su sistema.
      Para informaci&oacute;n acerca de los sistemas operativos soportados
      y configuraciones de hardware para el IDE, vea las
      <a href="relnotes.html">
        Notas de Lanzamiento NetBeans IDE 6.1
      </a>.
      Vea
      <a href="index.html">
        Informaci&oacute;n NetBeans IDE 6.1
      </a>
      para aprender acerca de las nuevas caracter&iacute;sticas inclu&iacute;das en NetBeans IDE 6.1.
    </p>

    <p><b>Contenido</b></p>
    <ul>
      <li><a href="#requiredsoftware" title="Required Software">Requerimientos de Software</a></li>
      <li><a href="#downloadoptions" title="Installer Download Options">Opciones de Descarga del Instalador</a></li>
      <li><a href="#customizeinstall" title="Customizing Your Installation">Personalizar Su Instalaci&oacute;n</a></li>
      <li><a href="#startdownload" title="Starting the Download">Comenzar la Descarga</a></li>
      <li><a href="#installation" title="Installing the Software">Instalar el Software</a>
        <div>
          <ul>
            <li><a href="#install_windows">Microsoft Windows, Solaris OS y Linux</a></li>
            <li><a href="#install_mac">Mac OS X</a> </li>
          </ul>
        </div>
      </li>
      <li><a href="#uninstallation" title="Uninstalling the Software">Desinstalar el Software</a></li>
      <li><a href="#upgrading">Actualizar la Versi&oacute;n y Coexistir con Versiones Anteriores</a> </li>
      <li><a href="#troubleshooting" title="Troubleshooting">Proble</a><a href="#troubleshooting" title="Troubleshooting">mas</a></li>
      <li><a href="#moreinformation" title="More Information">M&aacute;s In</a><a href="#moreinformation" title="More Information">formaci&oacute;n</a></li>
    </ul>
    <h2><a name="requiredsoftware" id="requiredsoftware"></a>Requerimientos de Software</h2>

    <p>
      Antes de instalar el IDE, el Kid de Desarrollo Java SE (JDK) 5 Actualizaci&oacute;n 14
      (versi&oacute;n 1.5.0_14) o posterior (incluyendo JDK 6 Actualizaci&oacute;n 4) debe estar
      instalado en su sistema. Si usted no tiene una instalaci&oacute;n de JDK 5 Actualizaci&oacute;n
      14 o posterior, usted no puede continuar con la instalaci&oacute;n. Para m&aacute;s
      informaci&oacute;n acerca de la versi&oacute;n requerida, vea la secci&oacute;n Requerimientos
      de Software en las
      <a href="relnotes.html">
        Notas de Lanzamiento de NetBeans IDE 6.1
      </a>.
    </p>

    <p align="center"><a href="#top">arriba</a></p>
    <h2><a name="downloadoptions" id="downloadoptions"></a>Opciones de Descarga del Instalador</h2>
    <p>
      En la <a href="../../../downloads/index.html">P&aacute;gina de Descarga</a> de NetBeans IDE 6.1,
      usted puede descargar uno de varios instaladores, cada uno contiene el IDE base y herramientas
      adicionales.
    </p>
    <p>Los siguientes instaladores est&aacute;n disponibles: </p>
    <ul>
      <li>
        <b>Web &amp; Java EE</b>. Provee herramientas para desarrollar aplicaciones Java SE, Java EE
        y aplicaciones web. Esta opci&oacute;n de descarga tambi&eacute;n incluye el servidor
        GlassFish V2 UR2 y el software Apache Tomcat.
      </li>
      <li>
        <b>Mobility</b>. Soporta el desarrollo de aplicaciones Java ME e incluye el paquete Mobility
        para ciertas aplicaciones MIDP para aparatos m&oacute;biles. Notese que algunas caracter&iacute;sticas
        de Mobility, tales como al asistente para Coneci&oacute;n Inal&aacute;mbrica (Wireless Connection),
        requiere caracter&iacute;sticas que est&aacute;n disponibles en el paquete Web &amp; Java EE.
        Si usted planea usar estas caracter&iacute;sticas, descargue la opci&oacute;n de instalaci&oacute;n
        &quot;All&quot;.
      </li>
      <li>
        <b>Java SE</b>. Provee todas las caracter&iacute;sticas est&aacute;ndares para el desarrollo
        Java SE. El soporte para Desarrollo de Extensiones NetBeans (NetBeans Plugin Development)
        tambi&eacute;n est&aacute; inclu&iacute;do.
      </li>
      <li>
        <b>Ruby</b>. Provee herramientas para el desarrollo Ruby y soporta Rails y JRuby.
      </li>
      <li>
        <b>PHP</b>. Provee herramientas para el desarrollo PHP. La opci&oacute;n de descarga PHP
        est&aacute; disponible en Acceso Reciente (Early Access).
      </li>
      <li>
        <b>C/C++</b>. Soporta el desarrollo en lenguaje C/C++.
      </li>
      <li>
        <b>All</b>. Esta es la opci&oacute;n de descarga completa para NetBeans IDE 6.1. Contiene
        todos los paquetes y rutinas disponibles para el IDE. Incluye herramientas para el
        desarrollo de Arquitectura de Servicio Orientado (Service Oriented Architecture) y 
        construcci&oacute;n de diagramas de Modelado Unificado de Lenguaje (Unified Modeling Language).
      </li>
    </ul>
    <p align="center"><a href="#top">arriba</a></p>
    <h2><a name="customizeinstall"></a>Personalizar Su Instalaci&oacute;n</h2>
    <p>
      Si usted elige la opci&oacute;n de descarga Web &amp; Java EE o &quot;All&quot;,
      usted puede seleccionar exactamente cuales herramientas y rutinas desea instalar.
    </p>
    <p>
      Para la opci&oacute;n de descarga Web &amp; Java EE, en la p&aacute;gina de bienvenida
      seleccione los servidores que quiera usar.
    </p>
    <p>
      Para la opci&oacute;n de descarga &quot;All&quot;, haga click en Personalizar (Customize)
      en la p&aacute;gina de bienvenida y seleccione las caracter&iacute;sticas que quiera utilizar.
      Para m&aacute;s informaci&oacute;n, vea
      <a href="#installation" title="Installing the Software">Instalar el Software</a>.
    </p>
    <p>
      Si quiere agregar funcionalidad a su configuraci&oacute;n NetBeans IDE, use el
      Administrador de Extensiones (Plugin Manager) de NetBeans. Por ejemplo, asuma que
      usted comenzó descargando e instalando el paquete Ruby. Entonces decide que quiere
      probar la funcionalidad C/C++. Para hacer esto, vaya al Administrador de Extensiones
      en el IDE (seleccione Tools &gt; Plugins) y agregue el paquete C/C++ a su instalaci&oacute;n
      existente.
    </p>
    <p>
      Existen varias notas importantes acerca de la instalaci&oacute;n y configuraci&oacute;n
      de algunas caracter&iacute;sticas de NetBeans IDE:
    </p>
    <ol>
      <li>
        Apache Tomcat 6.0.16 est&aacute; inclu&iacute;do en las opciones de descarga
        &quot;Web &amp; Java EE&quot; y &quot;All&quot; pero est&aacute; predeterminado
        solamente el la opci&oacute;n &quot;Web &amp; Java EE&quot;. Para instalar
        Apache Tomcat desde la opci&oacute;n de descarga &quot;All&quot;, ejecute
        el instalador y seleccione Apache Tomcat 6.0.16 en el cuadro de di&aacute;logo
        de Instalaci&oacute;n Personalizada (Customize Installation).
      </li>
      <li>
        Para el desarrollo C/C++ (aplicable solo para las opciones de descarga C/C++ y
        &quot;All&quot;), usted necesita instalar adicionalmente los compiladores y las
        herramientas. Para mayor informaci&oacute;n, refi&eacute;rase al
        <a href="../60/cpp-setup-instructions.html">
          Soporte de Instalaci&oacute;n y Configuraci&oacute;n C/C++</a>.
      </li>
      <li>
        Si usted quiere usar el Administrador de Acceso del Sistema Sun Java
        (Sun Java System Access Manager), adem&aacute;s de la opci&oacute;n de descarga
        &quot;All&quot; para IDE, usted necesita instalar la Plataforma de Aplicaci&oacute;n
        Java SDK Actualizaci&oacute;n 4 o posterior desde
        <a href="http://java.sun.com/javaee/downloads/index.jsp">
          http://java.sun.com/javaee/downloads/index.jsp</a>.
        <!--Aseg&uacute;rese de descargar la versi&oacute;n que incluye el Administrador de
        Acceso (Access Manager). Para m&aacute;s informaci&oacute;n acerca de los pasos
        necesarios para instalar el Administrador de Acceso, vea
        <a href="../../../kb/68/javaee/identity-amsecurity.html#install">
          Instalar Sun Java System Access Manager</a>.-->
      </li>
      <li>
        Para desarrollar aplicaciones Mobility para aparatos CDC usted necesita
        descargar e instalar
        <a href="http://java.sun.com/products/cdctoolkit/download-1_0.html">
          Sun Java Toolkit 1.0 para CDC</a>.
        Despu&eacute;s de la instalaci&oacute;n usted debe
        <a href="../../../kb/docs/javame/cdcemulator-setup.html">
          registrar la plataforma CDC</a>
        en el IDE.
      </li>
      <li>
        Para Mac OS X, usted no puede personalizar la instalaci&oacute;n de NetBeans IDE.
      </li>
    </ol>
    <p align="center"><a href="#top">arriba</a></p>

    <h2><a name="startdownload" id="startdownload"></a>Comenzar la Descarga</h2>
    <ol>
      <li>
        Navegue en la <a href="../../../downloads/index.html">P&aacute;gina de Descarga</a> de NetBeans IDE 6.1.
      </li>
      <li>
        En el &aacute;rea superior derecha de la p&aacute;gina, seleccione su plataforma
        desde la lista desplegable.
      </li>
      <li>
        Haga click en el bot&oacute;n Download para las opciones de descarga que
        usted quiera instalar.
      </li>
      <li>
        Guarde el archivo de instalaci&oacute;n en su sistema.
      </li>
    </ol>
    <p align="center"><a href="#top">arriba</a></p>

    <h2><a name="installation"></a>Instalar el Software</h2>
    <p>
      Siga las instrucciones en esta secci&oacute;n para instalar el IDE en
      su sistema. Estas instrucciones de instalaci&oacute;n se aplican a todas
      las plataformas soportadas. Para una lista de plataformas soportadas, vea
      las <a href="relnotes.html">Notas de Lanzamiento NetBeans IDE 6.1</a>.
    </p>
    <h3><a name="install_windows" id="install_windows">Microsoft Windows, Solaris OS y Linux</a></h3>
    <p><b>Para instalar el software:</b></p>
    <ol>
      <li>Despu&eacute;s de completarse la descarga, ejecute el instalador.<br>
        <ul>
          <li>
            Para Windows, el archivo ejecutable de instalaci&oacute;n tiene extensi&oacute;n <tt>.exe</tt>.
            Haga doble click en el archivo de instalaci&oacute;n para ejecutarlo.
          </li>
          <li>
            Para plataformas Solaris y Linux, el archivo de instalaci&oacute;n tiene
            extensi&oacute;n <tt>.sh</tt>. Para estas plataformas, usted necesita
            convertir los archivos de instalaci&oacute;n en archivos ejecutables usando
            el siguiente comando: chmod +x ./&lt;<i>nombre-de-archivo-instalador</i>&gt;</tt>
          </li>
        </ul>
    </li>
    <li>
      Para seleccionar las herramientas y rutinas a instalar, realice los siguientes pasos
      en la p&aacute;gina de Bienvenida (Welcome) del asistente de instalaci&oacute;n:
      <ol type="a">
        <li>Haga click en Personalizar (Customize).</li>
        <li>En el cuadro de di&aacute;logo Personalizar, haga sus selecciones.</li>
        <li>Haga click en OK.</li>
      </ol>
    </li>
    <li>
      en la p&aacute;gina de Bienvenida (Welcome) del asistente de instalaci&oacute;n,
      haga click en Next.
    </li>
    <li>
      En la p&aacute;gina de Acuerdo de Licencia (License Agreement), revise el acuerdo
      de licencia, chequee la casilla de aceptaci&oacute;n y haga click en Next.
    </li>
    <li>
      En la p&aacute;gina de instalaci&oacute;n de NetBeans IDE, haga lo siguiente:<br>
      <ol type="a">
        <li>
          Acepte el directorio de instalaci&oacute;n predeterminado para NetBeans IDE
          o especifique otro directorio.<br>
          <b>Nota:</b> El directorio de instalaci&oacute;n debe estar vac&iacute;o,
          y el perfil de usuario que usted est&aacute; usando debe tener permiso
          de lectura/escritura para este directorio.
        </li>
        <li>
          Acepte la instalaci&oacute;n predeterminada JDK para utilizar con NetBeans IDE
          o seleccione una instalaci&oacute;n diferente desde la lista desplegable.<br>
          Si el asistente de instalaci&oacute;n no halla una instalaci&oacute;n JDK
          compatible para su uso con NetBeans IDE, su JDK no se encuentra instalado
          en el directorio por defecto. En ese caso, especifique el directorio de
          instalaci&oacute;n JDK o cancele la instalaci&oacute;n en curso e instale la
          versi&oacute;n JDK necesaria y reinicie la instalaci&oacute;n de NetBeans IDE.
        </li>
        <li>Haga click en Next.</li>
      </ol>
    </li>
    <li>
      Si se abre la p&aacute;gina de instalaci&oacute;n del servidor GlassFish,
      haga lo siguiente:<br>
      <ol type="a">
        <li>
          Acepte el directorio de instalaci&oacute;n predeterminado para el servidor o
          especifique otro directorio de instalaci&oacute;n.<br>
          <b>Nota:</b> El directorio de instalaci&oacute;n que usted especifique debe
          estar vac&iacute;o, y el perfil de usuario que usted est&aacute; usando debe
          tener permiso de lectura/escritura para este directorio.
        </li>
        <li>
          Desde la lista de instalaciones compatibles JDK, elija la JDK que quiera que
          su servidor utilice o haga click en el bot&oacute;n Explorar (Browse) para
          especificar otra instalaci&oacute;n JDK.
        </li>
        <li>
          Cambie el nombre de usuario y contrase&ntilde;a para el dominio del servidor
          o acepte los que aparecen por defecto y haga click en Next.<br>
          El nombre de usuario y la contrase&ntilde;a que aparecen por defecto son
          <tt>admin</tt> y <tt>adminadmin</tt> respectivamente.
        </li>
        <li>
          Verifique los valores predeterminados de los puertos (<tt>HTTP</tt>, <tt>HTTPS</tt> y <tt>Admin</tt>)
          para el servidor o cambielos si es necesario.
        </li>
        <li>Haga click en Next.</li>
      </ol>
    </li>
    <li>
      Si se abre la p&aacute;gina de instalaci&oacute;n de la aplicaci&oacute;n Apache Tomcat,
      acepte el directorio de instalaci&oacute;n predeterminado o especifique otro directorio de
      instalaci&oacute;n.
    </li>
    <li>
      En la p&aacute;gina Resumen (Summary), verifique que la lista de componentes a ser
      instalados es correcta y que usted tienen espacio suficiente en su sistema para
      la instalaci&oacute;n.
    </li>
    <li>Haga click en Install para comenzar la instalaci&oacute;n.</li>
    <li>Cuando se complete la intalaci&oacute;n:
      <ol type="a">
        <li>
          Si la aplicaci&oacute;n GlassFish ha sido instalada, para registrarla
          seleccione la casilla de verificaci&oacute;n Register the Sun Java System
          Application Server and NetBeans IDE despu&eacute;s de finalizar la instalaci&oacute;n.
        </li>
        <li>
          Si la aplicaci&oacute;n GlassFish no ha sido instalada, seleccione la casilla de
          verificaci&oacute;n Register the NetBeans IDE despu&eacute;s de finalizar la
          instalaci&oacute;n para registrar su NetBeans IDE.
        </li>
        <li>Haga click en Finish para salir del asistente.</li>
      </ol>
    </li>
    <li>
      Si usted seleccion&oacute; la casilla de verificaci&oacute;n de Registro en el
      paso previo, la p&aacute;gina de Registro se abre en el navegador predeterminado.
      Haga click en Registrar (Register).
    </li>
    <li>
      Introduzca su Cuenta En L&iacute;nea Sun o cree una en la p&aacute;gina
      <a href="http://www.sun.com">www.sun.com</a>, la cual est&aacute; accesible via link.
    </li>
  </ol>
    <p class="notes">
      <b>Nota:</b> Si encuentra problemas para completar satisfactoriamente la instalaci&oacute;n, vea
      <a href="#troubleshooting">Problemas</a> para ver descripciones y soluciones sugeridas para
      problemas no resueltos que puedan afectar el proceso de instalaci&oacute;n.
    </p>
    <p class="notes">
      <b>Nota:</b> Si usted no ha registrado la aplicaci&oacute;n GlassFish despu&eacute;s
      de la instalaci&oacute;n, puede hacerlo cuando ejecute NetBeans IDE o cuando abra la
      <span class="style2">Consola de Administraci&oacute;n</span> del servidor GlassFish.
    </p>
    <p class="notes">
      <b>Nota:</b> Si usted no ha registrado su NetBeans IDE 6.1 justo despu&eacute;s de la
      instalaci&oacute;n, puede hacerlo cuando ejecute NetBeans IDE.
    </p>
    <h3><a name="install_mac" id="install_mac">Mac OS X</a></h3>
    <p><b>Para instalar el software:</b></p>
    <ol>
      <li>
        Despu&eacute;s de completar la descarga, ejecute el instalador. El archivo de
        instalaci&oacute;n tiene la extensi&oacute;n <tt>.dmg</tt>.
      </li>
      <li>
        En el panel que se abre haga click en el &iacute;cono del paquete. El paquete
        tiene la extensi&oacute;n <tt>.mpkg</tt>. El asistente de instalaci&oacute;n comienza.
      </li>
      <li>
        En la p&aacute;gina de Bienvenida (Welcome) del asistente, haga click en Continuar (Continue).
      </li>
      <li>
        Revise el acuerdo de licencia y haga click en Continue. Haga click en Aceptar (Accept)
        en la ventana emergente para aceptar la licencia.
      </li>
      <li>
        En la p&aacute;gina de Selecci&oacute;n de Destino (Select a Destination), seleccione
        el disco y haga click en Continue.
      </li>
      <li>
        Si usted descarg&oacute; los agregados All o Java EE, usted puede personalizar su
        instalaci&oacute;n. En el &uacute;ltimo panel de instalaci&oacute;n del asistente,
        presione Personalizar (Customize) en la esquina inferior izquierda del panel. El
        arbol de productos es mostrado.
      </li>
      <li>Seleccione los productos que quiera instalar</li>
      <li>
        Introduzca el nombre y contrase&ntilde;a del administrador de su sistema y haga click
        en OK para comenzar la instalaci&oacute;n.<br>
      </li>
    </ol>
    <P>Vea tambi&eacute;n:
      <a href="https://netbeans.org/kb/archive/index.html">
        Configurar JDK 6 y JavaFX en Macs Intel de 32-bit
      </a>
    </P>
    <p align="center"><a href="#top">arriba</a></p>
    <h2><a name="uninstallation">Desinstalar el Software</a></h2>
    <div>
      <h3><a name="uninstall_windows">Microsoft Windows</a></h3>
      <p>
        Si es necesario, usted puede desinstalar NetBeans IDE, el servidor GlassFish
        y la aplicaci&oacute;n Apache Tomcat usando los siguientes procedimientos.
      </p>
      <p><b>Para desinstalar el IDE</b>:</p>
      <ol>
        <li>Cierre el IDE.<br>
        </li>
        <li>
          Desde el Panel de Control, selecciones Agregar o Quitar Programas, despu&eacute;s
          seleccione NetBeans IDE 6.1 y haga click en Quitar.
        </li>
      </ol>
      <p><b>Para desinstalar el servidor GlassFish: </b></p>
      <ol>
        <li>Cierre el IDE.</li>
        <li>
          Desde el Panel de Control, selecciones Agregar o Quitar Programas, despu&eacute;s
          seleccione GlassFish V2 UR2 y haga click en Quitar.
        </li>
      </ol>
      <p><b>Para desinstalar Apache Tomcat: </b></p>
      <ol>
        <li>Cierre el IDE.</li>
        <li>
          Desde el Panel de Control, selecciones Agregar o Quitar Programas, despu&eacute;s
          seleccione Apache Tomcat 6.0.16 y haga click en Quitar.
        </li>
      </ol>
    </div>
    <div>
      <h3><a name="uninstall_sollinux">Solaris OS, Linux</a></h3>
      <p>
        Si es necesario, usted puede desinstalar NetBeans IDE, el servidor GlassFish
        y la aplicaci&oacute;n Apache Tomcat usando los siguientes procedimientos.
      </p>
      <p><b>Para desinstalar el IDE</b>:</p>
      <ol>
        <li>Cierre el IDE.</li>
        <li>
          En el directorio de instalaci&oacute;n del IDE, ejecute el archivo <tt>uninstall.sh</tt>.
        </li>
        <li>
          Para desinstalar GlassFish/Tomcat junto con el IDE en la p&aacute;gina Summary (Resumen)
          aseg&uacute;rese que las versiones correctas est&aacute;n listadas y que est&aacute;
          seleccionadas las casillas de verificaci&oacute;n apropiadas.
        </li>
        <li>
          En la p&aacute;gina Summary (Resumen), haga click en Uninstall (Desinstalar). <br>
        </li>
        <li>Luego de completada la instalaci&oacute;n, haga click en Finish (Finalizar).</li>
      </ol>
      <p><b>Para desinstalar el servidor GlassFish</b>:</p>
      <ol>
        <li>Cierre el IDE.</li>
        <li>
          Ubique el directorio de instalaci&oacute;n del servidor.<br>
          <p>
            <b>Nota:</b> La ubicaci&oacute;n de instalaci&oacute;n predeterminada
            es diferente dependiendo del tipo de instalaci&oacute;n y de la
            plataforma. La siguiente tabla muestra los directorios de instalaci&oacute;n
            predeterminados del servidor.
          </p>
          <table>
            <tbody>
                <tr class="tblheader">
                    <th width="70">Plataforma</th>
                    <th width="101">Instalado Como...</th>
                    <th width="264">Instalaci&oacute;n SOA</th>
                </tr>
                <tr class="tbltd0">
                    <td>Solaris&nbsp;OS&nbsp;<br></td>
                    <td>root</td>
                    <td><tt>/opt/glassfish-v2ur2</tt></td>
                </tr>
                <tr class="tbltd1">
                    <td>Solaris&nbsp;OS,<br>Linux</td>
                    <td valign="top">user</td>
                    <td valign="top"><tt>~/glassfish-v2ur2</tt></td>
                </tr>
                <tr class="tbltd0">
                    <td>Linux</td>
                    <td>root</td>
                    <td><tt>/usr/local/glassfish-v2ur2</tt></td>
                </tr>
            </tbody>
          </table>
        </li>
        <li>
          En el directorio de instalaci&oacute;n del servidor, ejecute
          el archivo <tt>uninstall.sh</tt>.
        </li>
        <li>En la p&aacute;gina Summary (Resumen), haga click en Uninstall (Desinstalar).<br>
        </li>
        <li>Despues de terminar la desinstalaci&oacute;n, haga click en Finish (Finalizar).</li>
      </ol>
      <p class="notes">
        <b>Nota:</b> El servidor GlassFish es requerido para la funcionalidad SOA.
        Cuando desinstale el servidor, la funcionalidad SOA es removida autom&aacute;ticamente
        de la instalaci&oacute;n de NetBeans IDE.
      </p>
      <p><b>Para desinstalar Apache Tomcat: </b></p>
      <ol>
        <li>Cierre el IDE.</li>
        <li>
          Ubique el directorio de instalaci&oacute;n de Apache Tomcat y ejecute el archivo
          <tt>uninstall.sh</tt>.<br>
        </li>
        <li>En la p&aacute;gina Summary (Resumen), haga click en Uninstall (Desinstalar).</li>
        <li>Despues de terminar la desinstalaci&oacute;n, haga click en Finish (Finalizar).</li>
      </ol>
    </div>
    <div>

    <h3><a name="uninstall_mac" id="uninstall_mac">Mac OS X</a></h3>
    <p><b>Para desinstalar el IDE y el servidor:</b></p>
    <ol>
      <li>Cierre el programa.</li>
      <li>
        Arrastre las carpetas del programa o los archivos del programa a la Papelera.<br>
        Note que la ubicaci&oacute;n predeterminada para el IDE y el servidor es
        <tt>/Applications/NetBeans/</tt>.
      </li>
    </ol>

    <p>&nbsp; </p>
    </div>
    <p align="center"><a href="#top">arriba</a></p>
    <h2><a name="upgrading"></a>Actualizar la Versi&oacute;n y Coexistir con Versiones Anteriores</h2>
    <p>
      NetBeans IDE 5.5 o 5.5.1, o 6.0 pueden coexistir con NetBeans IDE 6.1 en el mismo sistema.
      Usted no tendr&aacute; que desinstalar las versiones 5.5 o 5.5.1, 6.1 para poder instalar
      o ejecutar NetBeans IDE 6.1.
    </p>
    <p>
      Si posee NetBeans IDE 5.5, 5.5.1, o 6.0, durante la primera ejecuci&oacute;n de
      NetBeans IDE 6.1, usted podr&aacute; elegir si importar las configuraciones de
      usuario desde los directorios de usuario anteriores.
    </p>
    <p align="center"><a href="#top">arriba</a></p>
    <h2><a name="troubleshooting" id="troubleshooting"></a>Problemas</h2>

    <div>
      <h3>Acerca del Directorio de Trabajo del Instalador</h3>
      <p>
        El instalador almacena datos acerca de las sesiones de instalaci&oacute;n en el
        directorio de trabajo del instalador. Ejemplos de estos datos son la lista de
        componentes instalados en sus sistema, el registro de mensajes de instalaci&oacute;n
        y datos de registro.
      </p>
      <p>
        La ubicaci&oacute;n predeterminada del directorio de trabajo del instalador es
        <tt>%PERFILDEUSUARIO%\.nbi</tt> en Windows y <tt>~/.nbi</tt> en otras plataformas.
        El subdirectorio log contiene los archivos de registro de la instalaci&oacute;n.
      </p>
    </div>
    <div>
      <h3>Limpiar Luego de Instalaciones Incompletas</h3>

      <p>
        Despu&eacute;s de instalaciones incompletas o inexitosas, posiblemente necesite
        limpiar su sistema de instalaciones previas.
      </p>
      <p><b>Para Microsoft Windows, Solaris OS y Linux:</b></p>
      <ol>
        <li>Elimine el directorio de trabajo del instalador.</li>
        <li>Elimine los directorios de instalaci&oacute;n del IDE y del servidor GlassFish.</li>
        <li>
          En la plataforma Windows, borre todas las entradas de registro <tt>nbi*</tt> en las
          siguientes claves de registro: <br>
        <tt>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall</tt> <br>
        <tt>HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall</tt> </li>
      </ol>
      <p><b>Para Mac OS X:</b></p>
      <ul>
        <li>Arrastre las carpetas o los archivos del programa a la Papelera. </li>
      </ul>
    </div>
    <div>
      <h3>Deshabilite Algunos Software Antes de Instalar</h3>
      <p>
        Es mejor desabilitar los cortafuegos, antivirus y monitores de aplicaciones antes de
        comenzar su instalaci&oacute;n. Algunas de estas aplicaciones pueden evitar que los
        componentes IDE sean configurados correctamente durante el proceso de instalaci&oacute;n.
      </p>
      <p>
        Por ejemplo, si usted tiene la aplicaci&oacute;n Logitech Process Monitor (<tt>LVPrcSrv.exe</tt>)
        ejecut&aacute;ndose en su sistema, ci&eacute;rrela antes de la instalaci&oacute;n.
      </p>
    </div>
    <p align="center"><a href="#top">arriba</a></p>
    <h2><a name="moreinformation"></a>M&aacute;s Informaci&oacute;n</h2>
    <br>

    <ul>
      <li><a href="index.html">Informaci&oacute;n NetBeans IDE 6.1</a></li>
      <li><a href="../../../downloads/index.html">P&aacute;gina de Descarga NetBeans IDE 6.1</a></li>
      <li><a href="relnotes.html">Notas de Lanzamiento NetBeans IDE 6.1<br>
          </a>
      </li>
    </ul>
    <hr class="light">
    <br>
    <div class="feedback-box">
      <a href="https://netbeans.org/about/contact_form.html?to=3&subject=Feedback: NetBeans IDE 6.1 Installation Instructions">
        Env&iacute;enos Su Opini&oacute;n
      </a>
    </div>
    <br style="clear:both;">
    <p align="center"><a href="#top">arriba</a></p>


  </body>
</html>
