Este tutorial trata de presentar las ventajas de utilizar Eclipse para programar Java. Sirve como una guía detallada para usuarios novatos. No es indispensable un conocimiento avanzado o particular de Java para poder seguir este tutorial. En unos escasos minutos, serás capaz de dominar las tecnicas principales de Eclipse. El único prerrequisito que debe cumplirse antes de comenzar este tutorial es tener instalada cualquier versión de Eclipse (igual o sobresaliente a la 2.0), junto con una máquina virtual de Java. De hecho, este tutorial está optimizado para la versión 2.1.2 de Eclipse, pero es también válido para Eclipse 3.0. Parte 1: Ámbito de Programas de Eclipse "La ciencia es conocimiento organizado. La sabiduría es la particular vida organizada." Im Kant. En el ámbito de desarrollo Eclipse todo archivo se almacena dentro de un proyecto. Esto desea decir que todo documento, carpeta, archivo de código fuente (.java) y código compilado (.class) tiene que estar contenido dentro de un proyecto. Así entonces, el primer paso antes de usar Eclipse para programar en Java es entender la articula de programas de Eclipse. Es indispensable crear un nuevo proyecto no sólo para construir un nuevo proyecto de Java, sino para editar también ficheros ya existentes (como por ejemplo, un proyecto ".java" almacenado en un diskette). Para crear un nuevo proyecto, seleccione en la línea de menús principal "File > New > Project...". También es probable seleccionar "New > Project..." haciendo clic derecho en cualquier fracción una vista de Eclipse (como por ejemplo, el Package Explorer o el Resource Navigator). Hay varios tipos de programas de Eclipse que pueden ser creados: * Para crear o editar proyectos Java, un "Java Project" debería ser creado. Nótese que dentro de un programa de Java también puede almacenarse toda la información relacionada con el programa (la cual no tiene por qué reducirse estrictamente a código fuente, sino que también puede contener documentación y otros ficheros relacionados). * Los "Simple Project" sólo deberían crearse para Guardar documentos y otros archivos, pero no código Java que se desee compilar. Por ello, siempre que se creen ficheros ".java" sería recomendable crear un "Java Project". * Los "Plug-in Development Project" se usan para agregar nuevos módulos y funciones al ámbito Eclipse. Estos programas sólo son necesarios si se es un desarrollador de Eclipse. * Los programas de "EMF" se emplean para crear modelos de análisis y diseño. Puesto que este tutorial se centra en utilizar Eclipse para programar en Java, escogeremos crear un nuevo "Java Project" seleccionando "Java > Java Project" y haciendo clic en el botón "Next >" del asistente de creación. Tras esto, debe especificarse un nuevo nombre para el proyecto. Los programas profesionales se nombran utilizando nombres de dominio dados la vuelta para eludir probables conflictos de nombrado. Sin embargo, para un programa de uso interno cualquier nombre descriptivo será suficiente. En este ejemplo, se ha llamado al nuevo programa "Eclipse Tutorial". Si se usa el directorio por defecto, los ficheros del programa se almacenarán en el directorio "[DirectorioDeInstalación]\workspace\[NombreProyecto]". También es probable especificar un directorio distinto en el que guardar dichos contenidos. Pese a que en este punto es ya probable terminar la creación del nuevo programa haciendo clic en el botón "Finish", es recomendable pulsar de nuevo el botón "Next >" para definir explícitamente de esta forma una carpeta fuente para los ficheros ".java" desde el principio. Las carpetas fuente ("Source Folders" almacenan los ficheros de código fuente de Java (.java), de forma que Eclipse sepa donde encontrarlos y pueda hacer la compilación automática de los mismos cada vez que un archivo sea guardado. Para crear felicidad carpeta fuente seleccione la pestaña de "Source" y pulse el botón "Add Folder...". Seleccione el programa recientemente creado y pulse el botón "Create New Folder". Un buen nombre para esta carpeta fuente podría ser Simplemente "src". Tras especificar dicho nombre, pulse "Ok". A la pregunta de si quiere actualizar la carpeta de salida de ficheros compilados, debería contestar afirmativamente. De este modo, los ficheros ".class" que resulten de la compilación de los ".java" almacenados en la carpeta fuente irán a detener a la carpeta "\bin". Pulse el botón "Finish" para terminar el proceso de creación del nuevo proyecto. Si se nos pregunta si queremos pasar a la perspectiva de Java, deberíamos contestar afirmativamente. En Eclipse 3.0 la creación de programas es un tanto distinto a Eclipse 2.x. Aún puede definirse una carpeta cualquiera para Guardar los proyectos. Pero ahora los pasos anteriormente expuestos acerca de la creación de una articula apropiada de carpetas fuente y destino pueden omitirse, ya que en la nueva versión de Eclipse basta con marcar la alternativa "Create separate source and output folders" para desarrollar de manera automática la articula de ficheros deseada. Como ya se mencionó anteriormente, para editar un fundamento existente debería ser primero importado dentro de un programa de Eclipse. Esto puede hacerse desde el menú "File > Import..." o bien pulsando con el botón derecho en cualquier punto de la vista del "Package Explorer" o del "Resource Navigator". Para seleccionar un archivo o directorio hay que seleccionar "File system" en el sub menú de importación. Entonces sólo habrá que recorrer los directorios marcando los ficheros que se deseen importar así como el programa y la carpeta destino. Es significativo tener en cuenta que todo fundamento que se importa en Eclipse se duplica. Esto implica que borrar la copia que Eclipse esté manejando no borrará el archivo original, de forma que se seguirá teniendo una copia de reserva. Sin embargo, si se usa la alternativa de importar un programa de Eclipse ya existente, los contenidos de dicho programa serán duplicados. Así que hay que ser especialmente cuidadoso al borrar programas importados del ámbito de esfuerzo de Eclipse, ya que es probable que otras copias de backup de dicho programa no existan. Todo archivo creado mediante la utilización de Eclipse puede ser exportado como un archivo usual (seleccionando Export... > File System), como un archivo ".jar" e inclusive como ficheros comprimidos en ".zip". El proceso que hay que seguir es parecida al proceso recientemente explicado para importar archivos, sólo que seleccionando ahora la alternativa "Export". También es probable copiar, cortar y pegar ficheros y carpetas desde Eclipse hasta los directorios del sistema operativo (por ejemplo, del explorador de Windows) y viceversa (seleccionando un archivo, pulsando CTRL+C, seleccionando la carpeta destino dentro de Eclipse y pulsando CTRL+V). Parte 2: Crear Fundamentos de Java Una vez que se ha creado un nuevo proyecto, es hora de aprender cómo crear los diversos fundamentos de Java. Para seguir los pasos que se exponen a continuación es indispensable cambiar a la "Perspectiva Java" (si no se ha hecho ya) seleccionando "Window > Perspectives > Java". La perspectiva de Java contiene las vistas y editores más útiles a la hora de crear nuevos proyectos en Java. Haciendo clic derecho en la carpeta fuente recientemente creada (por ejemplo, "src" dentro de la vista del Package Explorer, aparecerá un menú contextual. Seleccionando "New >" en dicho menú se mostrará una lista con los diversos fundamentos de Java que pueden ser creados. Java Class Las clases de Java son los ficheros ".java" que contienen el código fuente y que serán posteriormente compilados en ficheros ".class". Estos ficheros Java tienen que ser almacenados dentro de la carpeta fuente recientemente creada (por ejemplo, "src" La carpeta fuente especificada debería ser la carpeta recientemente definida (src). Si no se especifica ningún paquete para contener las clases Java, se guardarán dentro de un paquete por defecto. El último tema obligatorio que debería ser rellenado antes de proceder a la creación de la clase Java es el propio nombre de la clase. Las convenciones de Java sugieren que el nombre de una clase debería comenzar con mayúscula. En este tutorial se ha usado el nombre "ExampleClass". También tienen lugar otros modificadores que pueden ser fácilmente añadidos a una clase desde el mismo momento de su creación. Sin embargo, estos fundamentos también podrían ser añadidos manualmente en otras fases más avanzadas del proceso de desarrollo. Si se pretende que la nueva clase extienda (herede de) otra clase existente, se debería especificar la clase "padre" dentro del tema "Superclass". El botón "Browse..." es de mayor utilidad a la hora de descubrir clases que sean probables candidatas para ser extendidas. Aunque Java sólo soporta herencia única (sólo puede expandirse de una única clase) sí que es probable que una clase implemente más de una interfaz. Una vez más, el botón "Browse..." simplifica la tarea de seleccionar interfaces implementadas. Si se quiere que la nueva clase contenga un método "main" (es decir, el punto inicial de ejecución del programa), puede añadirse dicho método automáticamente sólo con marcar la casilla con la alternativa apropiada. También pueden implementarse de esta forma los constructores de la superclase y todos los métodos abstractos heredados. Esta última alternativa es muy provechoso si se quiere instanciar la clase ya que que para esto todo método abstracto debería estar implementado. Es interesante resaltar que los ficheros compilados ".class" sólo son visibles en la ventana "Navigator", libre por defecto dentro de la perspectiva "Resource". Puesto que la perspectiva de Java no abre esa ventana por defecto, los archivos .class no serán visibles en la vista del Package Explorer. Sin embargo, basta con escribir y guardar un archivo ".java" para que se cree un archivo ".class" resultante de compilar el archivo fuente anterior. File Los ficheros que se crean a través de este menú suelen Guardar notas e información general. Otros ficheros tales como ficheros de configuración, ficheros "build" de ant y parecidas también pueden crearse de esta manera. Crear un nuevo archivo es tan fácil como pulsar "New > File", seleccionar el programa y carpeta correctos en que se quiere crear el archivo, dar nombre al nuevo archivo y pulsar el botón "Finish". Por defecto, ficheros los ficheros genéricos se abren en el editor de texto. Folder Las carpetas se emplean para Guardar y estructurar archivos. Como ya se ha mencionado anteriormente, una carpeta usual no es exactamente lo mismo que una carpeta fuente. Una práctica recomendada de programación es crear explícitamente una carpeta fuente donde Guardar los ficheros .java con el código fuente (src), una carpeta de salida donde guardar el código compilado (bin) y una carpeta para guardar toda la documentación relacionada (docs). Para crear una nueva carpeta basta con especificar el nombre de la nueva carpeta y la carpeta que la contiene. Interface Las interfaces son casos propias de las clases de Java, que carecen de implementación y que se aguarda que otras clases implementen. Usualmente funcionan como una especie de contrato, señalando lo que la clase implementada debería hacer, entretanto que los detalles de más debajo nivel corresponderían al implementador. El procedimiento de creación de interfaces es muy parecida al procedimiento de creación de nuevas clases ya detallado. Aunque una interfaz no puede implementar ninguna interfaz, sí que puede expandir otra interfaz mediante una relación de herencia. Package Los paquetes se declaran para Guardar y estructurar los ficheros de Java. El nombre de un paquete consta normalmente de algúnas fracciónes separadas por puntos. Cada una de estas fracciónes será un directorio nuevo dentro del sistema de archivos. Las clases que se creen dentro de un paquete algun en Eclipse llevarán añadida automáticamente la manifiesto "package" en su código fuente. Scrapbook Page Estas "hojas de sucio" son una manera sencilla de probar pedazos de código antes de añadirlos al proyecto final. Sólo hay que crear una "Scrapbook Page" dentro de la carpeta deseada y escribir el código dentro de ella. No hace falta meter el código dentro de un método main para ejecutarlo. En Eclipse 3.0 las "scrapbook pages" no se muestran directamente en el menú contextual. Para crear una nueva hoja de sucio seleccione "New > Other > Java > Java Run/Debug > Scrapbook Page". Otra diferencia respecto de las versiones 2.x es que en Eclipse 3.0 sí que están habilitadas las funciones de auto completar dentro de las scrapbook pages. Antes de intentar ejecutar el código añadido es indispensable importar las clases usadas. Para ello basta con hacer clic derecho sobre cualquier fracción de la hoja y seleccionar "Set Imports" del menú contextual. Ahí es donde hay que especificar los tipos y paquetes que es indispensable añadir. Para ejecutar el código recién creado es indispensable seleccionarlo pinchando con el botón izquierdo del ratón y arrastrando hasta tener todo el código seleccionado. Luego hay que pulsar el botón derecho del ratón sobre este código seleccionado y ejecutar la alternativa "Execute" del menú contextual. La salida estándar de dicho proceso se mostrará dentro de la vista "Console", y otros mensajes de yerro se mostrarán dentro de la misma hoja de sucio. Una vez que se ha completado la prueba habría que pulsar el botón "Stop Evaluation" del menú contextual. Puesto que el editor de estas hojas de prueba no ofrece tantas funciones de ayuda a la programación como el editor de código Java, una práctica recomendada es escribir el código original en el editor de Java y despues pegarlo en esta hoja de pruebas. Source Folder Como ya se vio, las carpetas fuente son un tipo especial de carpetas destinadas a Guardar los ficheros fuentes de Java (es decir, los de expansión ".java". Estos ficheros de código serán automáticamente compilados en ficheros ".class". Puesto que todo programa de Java debería tener una carpeta fuente, es una práctica recomendada estructurar esto desde el primer momento, como se explicó en la primera fracción de este tutorial. Parte 3: Funciones Útiles de Programación Hasta ahora se han expuesto conceptos básicos del funcionamiento común de Eclipse. Es hora de mostrar las funciones de ayuda a la programación de Eclipse. Es en esta fracción donde se dará cuenta de cómo usar Eclipse para programar en Java ahorra mayor porción de tiempo y esfuerzo. Durante que las fracciónes previos de este tutorial eran necesarias, esta será la más interesante. Compilar y Detectar Yerros Es significativo tener en cuenta que en Eclipse los yerros de compilación se muestran en tiempo real subrayando el pedazo de código correcto con una línea roja. Y asimismo el ámbito automáticamente compila los ficheros salvados. Así pues, no será indispensable pasar por el tedioso y lento proceso de compilar - contemplar los yerros - corregir los errores. Los yerros pueden descubrirse fácilmente porque se muestran asimismo como marcas rojas en el borde derecho del editor de código Java. También los yerros y advertencias presentes en ficheros ya guardados se muestran dentro de la vista de tareas (Tasks View), como se detallará posteriormente. Haciendo click en cualquiera de los dos tipos de marcadores de yerro llevará automáticamente hasta la línea en que el yerro está presente. Las advertencias (warnings) se muestran de la misma manera, pero con marcas amarillas. Icono de Bombilla = Autocorregir Hemos visto como Eclipse detecta y marca todo yerro y advertencia de compilación. Eclipse habitualmente faculta autocorregir los probables yerros haciendo clic en el icono de bombilla presente en el borde izquierdo del editor de código. Así pues, aparecerá una ventana mostrando todas las opciones. Seleccionar una alternativa mediante los cursores del teclado o abandonar el punto del ratón sobre felicidad alternativa abrirá una nueva ventana mostrando detalladamente las transformaciónes de código que la autocorrección efectuaría. Basta con pulsar la alternativa seleccionada (o pulsar ENTER) para realizar que Eclipse lleve a cabo la corrección automatizada. CTRL + Lugar = Autocompletar Una vez que conozca la provechoso función de autocompletar la usará continuamente. A través de los próximos ejemplos prácticos aprenderá cuales son las situaciones más comunes en que esta función de ayuda a la programación resultará muy útil. * Nombres de Clases Crear referencias a otras clases dentro de la clase actual es una tarea de programación habitual. Sin embargo, determinadas clases de Java tienen nombres muy largos que son complicados de recordar. Además, es indispensable agregar declaraciones de importación para poder resolver felicidades referencias a clases a la hora de compilar. Usar "CTRL + Espacio" tras escribir los primeros caracteres del nombre de una clase Java mostrará las probables alternativas. Puede seleccionar cualquiera de ellas simplemente realizando clic izquierdo del ratón. Nótese que la sentencia de importación correspondiente se añadirá de manera automática. Las clases se marcan con una "C" verde entretanto que las interfaces se marcan con una "I" morada. El paquete al que pertenece la clase se presenta también, permitiendo de este modo eludir probables confusiones. * Atributos y Variables Locales * Métodos y Constructores Una vez que se ha creado un objeto Java pueden invocarse los métodos correspondientes a su clase. Sin embargo, es bastante habitual olvidar el nombre de un método en concreto, o inclusive los tipos de sus parámetros y su orden. Este asunto puede solucionarse fácilmente pulsando "CTRL + Espacio" tras escribir el nombre del objeto seguido de un punto, lo cual mostrará una ventana con las probables alternativas. Pulsar sobre la opción escogida añadirá la signatura del método al objeto. También es probable autocompletar la signatura de los constructores pulsando "CTRL + Espacio" tras escribir (o autocompletar) el nombre de la clase seguido de un signo de apertura de paréntesis, "(". Escribir las primeras letras del modificador de un método tal como "public" o "private" y pulsar "CTRL + Espacio" le permitirá crear automáticamente una plantilla del método. Pulsar el tabulador faculta brincar de un tema de la plantilla a otro, de forma que se pueda completar el tipo de retorno, el nombre del método y sus parámetros. * Bucles Los bucles suelen estar presentes en todos los programas. Aunque crear un nuevo bucle puede no ser una tarea muy compleja, Eclipse ofrece determinadas funciones de auto completado que pueden acelerar considerablemente el proceso. Basta con escribir "do", "while" o "for" y pulsar "CTRL + Espacio" para presentar las probables opciones. Si el bucle ha sido creado con el objetivo de iterar sobre un array de elementos, seleccionar esta alternativa intentará autocompletar inclusive el nombre del array. * Etiquetas de Javadoc Durante que los comentarios internos del programador se indican con una "//", los comentarios de Javadoc se inician con un "/**". Tras crear un método, agregar "/** + ENTER" sobre la signatura del método autocompletará información de Javadoc tal como "@param [nombreParámetro] ", "@return [descripciónDatosDevueltos]" y "@throws [tipoExcepción] ". Pulsar "CTRL + Espacio" dentro de un bloque "/** ... */" mostrará toda la lista de etiquetas Javadoc posibles. Menú "Source" Mediante un clic derecho en el editor de código se mostrará un menú contextual. Las funciones más significativos de su submenú "Source >" son las siguientes: * Comment and Uncomment Seleccionando esta alternativa se puede relatar o quitar la marca de comentario del código. Esto es especialmente provechoso usado con bloques de código, ya que que faculta no ejecutar temporalmente fracciónes del código sin llegar a eliminarlas. Las teclas rápidas asociadas son "CTRL + /" para agregar comentarios y "CTRL + \" para descartar felicidades marcas de comentario del bloque de código seleccionado. En Eclipse 3.0 estos comandos han sido sustituidos por "Toggle Comment". Seleccionando este nuevo comando del menú "Source" es probable cambiar el estado del código seleccionado, pasándolo de comentario a código o viceversa. También la nueva alternativa "Add Block Comment" marcará el código como comentario rodeándolo con los símbolos "/*" y "*/". Durante que seleccionar un bloque de código comprendido entre esos símbolos de comentario hará que en aparezca la alternativa "Remove Block Comment", la cual eliminaría los símbolos de comentario. * Format La función de formateado automático de código automáticamente indenta el código de la manera adecuada, asimismo de llevar a cabo otras funciones de representación. Es una manera rápida de obtener tener un código ordenado y comprensible. Las alternativas del formateador de código pueden modificarse a las preferencias personales usando "Window > Preferences > Java > Code Formatter". Las teclas rápidas asociadas son "CTRL + Mayúsculas + F". Nótese que las funciones de indentación de código facultan identificar rápidamente qué pedazos de código son afectados por una condición o bucle determinados, por ejemplo. Pero también es provechoso situar el cursor tras un paréntesis o llave, porque de esta manera se marcará el paréntesis vinculado que abre o cierra el bloque con un cuadrado gris. Así pues, se verá de un vistazo qué código se descubre realmente comprendido entre los dos paréntesis. Eclipse 3.0 faculta especificar alternativas avanzadas de formateo de código. La página de preferencias que faculta configurar el formateo de código se ha trasladado a "Window > Preferences > Java > Code Style > Code Formatter". Pese a que las alternativas se pueden configurar de acuerdo a las preferencias personales, ya vienen configuradas por defecto para cumplir las convenciones de Java. * Organise and Add Imports Aunque las sentencias de importación adecuadas se muestran siempre cuando se usan las funciones de autocompletar código para completar el nombre de una clase Java, nuevas sentencias de importación pueden añadirse en cualquier momento usando la función "Add Import". Pulsar "Organise Imports" eliminará automáticamente todas las declaraciones de importación no utilizadas, incrementando la eficiencia del código. El método abreviado del teclado es "CTRL + Mayúsculas + O". * Override and Implement Methods Seleccionando esta alternativa de sombrear o implementar métodos abrirá una ventana de menú en la cual se podrán marcar los métodos de la superclase cuya signatura se quiere que se añada. La alternativa "Add Constructors from Superclass" permitirá especializar todos los constructores usados. * Generate Getter and Setter El lenguaje Java faculta especificar distintos niveles de visibilidad de atributos. Sin embargo, en programación enfocada a objetos, los atributos internos de una clase deberían ser siempre privados. Esto desea decir que no debería poder realizarse ningún tipo de modificación directa del atributo de una clase desde otra clase externa. A motivo de esto, la única forma de alcanzar a un atributo privado para leer su valor o bien para darle un nuevo valor sería utilizando un método accesor o modificador que sea público. Seleccionando "Generate Getter and Setter" una ventana mostrando los probables métodos que podrían crearse de acuerdo con los atributos definidos aparecerá. Entonces los métodos necesarios podrían crearse simplemente seleccionándolos y pulsando "Ok". * Surround with try/catch block Para utilizar esta alternativa es indispensable tener seleccionado de antemano un pedazo de código pinchando con el botón izquierdo del ratón (o pulsando Mayúsculas) y arrastrando. Activar esta alternativa creará un bloque "try" alrededor del código seleccionado. Tras este bloque se añadirán automáticamente los bloques "catch" adecuados, los cuales atraparán toda probable excepción que el código rodeado pueda lanzar. Por defecto se agrega una sentencia de dibuja dentro de esos bloques "catch" de forma que sea probable identificar inmediatamente dónde se lanzó la excepción. Nótese también que, cuando una excepción no es atrapada, aparecerá como texto en rojo (de la salida de yerro estándar) en la vista "Console". Pulsar la línea de código en que se presenta en qué línea tuvo espacio la excepción llevará directamente a ese punto del proyecto en el editor de código. Refactor Menu Haciendo clic derecho en el editor de código mostrará el menú contextual. A continuación se muestran las funciones más interesantes del sub menú "Refactor >". *Rename Para invocar la función de renombrado hay que tener preliminarmente seleccionado un elemento. Marcar la alternativa de "update references" actualizará toda referencia al nuevo fundamento renombrado. Usando esta alternativa de "Refactor > Rename..." es como deberían renombrarse todos los fundamentos incluyendo los ficheros ".java". Puesto que así se actualizan todas las referencias no aparecerán dificultades a la hora de compilar. Al renombrar determinados fundamentos será probable actualizar también referencias en comentario de Javadoc, comentarios normales y cadenas de caracteres entrecomilladas, lo cual también puede resultar bastante útil. La alternativa de "Preview" faculta asegurarse de que no habrá ningún tipo de yerro mientras la operación de renombrado. * Move Antes de seleccionar "Refactor > Move...", el archivo fuente o fundamento que se quiere mover deberá haber sido seleccionado. Entonces será sólo indispensable seleccionar el destino de forma que se lleve a cabo la operación de mover. Esta es la manera correcta de mover ficheros ya que evita dificultades futuros con referencias y rutas de compilación. * Change Method Signature Para adaptar la signatura de un método es probable usar esta alternativa en espacio de realizarlo manualmente. Sólo hay que ubicar el cursor dentro del método cuya signatura se quiere cambiar. Esta es una manera rápida de cambiar la visibilidad, el tipo de retonro, los parámetros y su orden. Los nuevos parámetros se añaden pulsando el botón "Add" y se modifican pulsando en botón "Edit". * Pull Up and Push Down Si la clase actual extiende o es extendida por otra clase, puede ser interesante mover algunos fundamentos a la superclase (pull up) o a la subclase (push down) respectivamente. Seleccionar el fundamento y la alternativa apropiada llevará a cabo esta operación de manera automatizada. Consultar la Documentación La documentación Javadoc del código que se esté actualmente programando puede ser consultada en tiempo real simplemente colocando el cursor o el puntero del ratón sobre el fundamento elegido. Para extender la ventana con esta documentación basta con pulsar la tecla de función F2. La documentación Javadoc externa (como por ejemplo, la documentación oficial de las clases de Java) puede consultarse modificando dentro de las preferencias del JRE instalado ("Window > Preferences > Installed JRE" con "Edit" la ubicación del Javadoc. De esta manera, dejando el cursor sobre el nombre de la clase y pulsando "Mayúsculas + F2" se abrirá la documentación por el punto adecuado. Eclipse 3.0 dispone de una nueva vista de Javadoc ("Window > Show View... > Java > Javadoc" Importar Ficheros JAR Parte 4: Vistas de Eclipse La interfaz de usuario de Eclipse consta de dos tipos de elementos: vistas y editores. Durante que los editores usualmente facultan hacer una tarea completa, las vistas ofrecen funciones de apoyo. En este punto del tutorial ya debería tener bastante práctica usando el editor de código cuyas funciones principales se detallaron en la fracción 3. Ahora, las vistas más interesantes de Eclipse se explicarán con detalle, junto a algunos consejos de cómo navegar a través de los editores. Perspectivas Una perspectiva de Eclipse es una agrupación de vistas y editores de forma que den apoyo a una actividad completa del proceso de desarrollo software. Sin embargo, es probable crear perspectivas particulares añadiendo nuevas vistas y cambiando su distribución en la pantalla. Las perspectivas pueden seleccionarse haciendo clic en los iconos de perspectiva del lateral izquierdo o escogiendo "Window > Open Perspective" del menú. Las perspectivas son: Resource : esta perspectiva está estrechamente relacionada con el sistema de ficheros ya que que representa la localización física de los recursos almacenados dentro de los programas Java: esta perspectiva se centra en tareas de programación, mostrando paquetes, clases, métodos y atributos en sus vistas asociadas. Plug-in development : la perspectiva de desarrollo de plug-in faculta a los desarrolladores agregar nuevos módulos de Eclipse. Install/Update : faculta gestión de la configuración. Presenta los componentes instalados así como sus versiones y conflictos. Debug: relacionada con la tarea de depuración. Se centra en los procesos ejecutados, puntos de ruptura, variables, salida, etc. Java Browsing : esta perspectiva faculta ojear rápidamente código, proyectos, paquetes y jerarquías. En Eclipse 3.0 los iconos de perspectiva se han trasladado a la esquina sobresaliente derecha. También hay ahora un botón etiquetado como "Open a Perspective" que faculta alcanzar rápidamente a otras perspectivas. Otro cambio es que la perspectiva "Install/Update" ha sido eliminada, y puede accederse a sus funciones seleccionando "Help > Software Updates" Tareas La vista de tareas ("Tasks View" faculta una rápida gestión de tareas pendientes. Seleccionando "Window > Show View > Tasks" se presenta esta vista. Pueden añadirse nuevas tareas haciendo clic en el botón "Add task". Nótese que la prioridad de la tarea y su estado también pueden adaptarse sin más que realizar clic en dichos campos. También los yerros y las advertencias de los ficheros con código guardados se muestran en esta vista. Haciendo clic en la descripción de un yerro llevará hasta el punto exacto del código en que se descubre dicho error. Haciendo clic derecho en cualquier punto de la vista de tareas se mostrará un menú contextual que permitirá hacer de manera rápida cualquier actividad relacionada con la gestión de las tareas definidas. Navigator La ventana del navegador de recursos faculta echar un vistazo a la articula de ficheros de los programas definidos. Nótese que esta vista es la única que presenta la carpeta de salida ("bin" así como los ficheros Java compilados (".class" Package Explorer La vista del explorador de paquetes presenta la articula lógica de paquetes y clases Java almacenados en los diferentes proyectos. las carpetas fuente (que deben Guardar los ficheros fuente ".java" se muestran aquí decoradas con el icono de un paquete contenido. Los ficheros Java también pueden ser expandidos de modo que muestren sus métodos y atributos internos al pulsar el botón "+". * Working Set Un conjunto de esfuerzo es un grupo de fundamentos que se muestran en las diferentes vistas de eclipse. Estos conjuntos de esfuerzo se usan como filtros que facultan separar claramente los distintos programas en que se está trabajando. Esto puede resultar muy provechoso cuando se está trabajando simultáneamente en varios programas no directamente relacionados entre sí. Organizar los diferentes programas en grupos de esfuerzo acelerará el proceso de buscar los fundamentos deseados y reducirá la confusión visual. Para definir un conjunto de trabajo, basta con pulsar en el icono de menú del Package Explorer (el icono de un triángulo invertido) y seleccionar "Select Working Set". Aquí se permitirá nombrar un nuevo conjunto de trabajo, así como seleccionar sus recursos relacionados y editar o quitar otros conjuntos de esfuerzo existentes. Todos los conjuntos de esfuerzo disponibles se muestran directamente la próxima vez que se pulse el icono triangular de menú. Es significativo tener en cuenta que crear un nuevo programa cuando un conjunto de esfuerzo está siendo usado hará que el nuevo programa no se muestre dentro de las vistas de Ecipse. Para poder ver el programa recién creado, será indispensable editar el conjunto de esfuerzo actual ("Menú de la vista > Select Working Set > Edit" o directamente "Edit Current Working Set" y seleccionar el nuevo programa para que se muestre. Outline View La vista de resumen es una manera rápida de ver qué métodos i atributos se encuentran definidos dentro de una clase de Java. Los iconos afiliados ofrecen información adicional de acuerdo con la visibilidad del atributo o método en cuestión. Y sólo con realizar clic en cualquiera de estos iconos conducirá a la línea de código exacta en que dicho atributo o método está definido. La vista de resumen es una dispositivo primordial para comprender y navegar ficheros Java voluminosos. Hierarchy View La vista de jerarquía presenta las vinculos de herencia presentes entre diferentes fundamentos de Java. Haciendo clic derecho en el nombre de una clase Java en el editor de código y seleccionando "Open Type Hierarchy" abrirá esta vista de jerarquía. La tecla rápida asociada es "F4" En Eclipse 3.0 se ha añadido la alternativa "Open Call Hierarchy" al menú contextual del editor de código. Tras seleccionar un método, al realizar clic en esta alternativa se abrirá una vista que mostrará dónde es usado dicho método. Las teclas rápidas asociadas son "CTRL + ALT + H". Fast Views Arrastrar una vista hasta el borde izquierdo (hasta que aparezca un icono de carpetas apiladas) convierte esta vista en una "vista rápida". Pulsar el icono de la vista rápida hará que felicidad vista se muestre, entretanto que regresar a pulsarlo (o pulsar en cualquier otro punto de la pantalla) hará que se oculte. Mediante un clic derecho en el icono de la vista rápida y seleccionando "Fast View" restaurará la vista a su posición original. El área por defecto en que se apilan las vistas rápidas ha sido cambiada en Eclipse 3.0. Ahora es un chico rectángulo ubicado en la esquina inferior izquierda de la pantalla. Así pues, las vistas rápidas se crean ahora arrastrando la vista dentro del rectángulo hasta que surge un icono de una saeta dentro de un cuadrado. No obstante, la zona en que Guardar las vistas rápidas puede cambiarse de espacio colocando el cursor sobre ella hasta que se transforma en un cursor con cuatro flechas, arrastrando y depositando la zona en el espacio deseado. Navegar por las Vistas y los Editores Hasta ahora hemos visto una introducción de cómo utilizar las vistas de Eclipse y cómo felicidades vistas ayudan a manejar la información. Es hora de aclarar determinadas funciones de navegación adicionales que serán útiles para descubrir rápidamente la información deseada y que permitirán presentarla adecuadamente en los diversos editores y vistas. Maximizar una Vista o Editor Basta con realizar doble clic en el título de una ventana para maximizarla. Doble clic en el título de nuevo hará que las dimensiones y posición de la ventana sean restauradas a las que tenía originalmente. En Eclipse 3.0 se ha añadido "CTRL + M" como tecla rápida asociada a maximizar o restaurar la ventana del editor actual. Ir al Último Cambio El icono del menú representado como "una saeta con un asterisco" sirve para ubicar el cursor en el último punto del código que fuese modificado dentro del editor activo. Es habitual que tras cambiar algo de código (por ejemplo, tras escribir determinadas instrucciones nuevas) movamos el cursor a otra línea para revisar otra fracción del programa. Si deseáramos regresar al punto en que añadimos el último cambio (que suele ser el espacio por el que "íbamos programando" tendríamos el asunto solucionado con sólo pulsar este icono de "ir al último espacio editado". Las teclas rápidas asociadas son "CTRL + Q". Parte 5: Ejecutar y Depurar Cuando el proyecto de Java esté completado será hora de ejecutarlo y probarlo. Quizás aparezcan algunos "bugs" a la hora de ejecutarlo. Entonces será hora de depurar el programa. Afortunadamente, Eclipse ofrece ayuda a las tareas de ejecutar y depurar código. Ejecutar Para ejecutar un proyecto dentro de Eclipse hay que seleccionar "Run > Run..." del menú principal. Dentro de "Configurations" se almacenan distintos configuraciones de ejecución. Hay cuatro tipos de configuraciones de ejecución: Java Applet (para applets web), Java Application (para proyectos normales de Java), JUnit (casos de prueba) y Run-Time Workbench (otras instancias de Eclipse que facultan probar nuevos módulos de Eclipse). Así pues, para ejecutar un proyecto de Java usual debería seleccionarse "Java Application" y pulsar el botón "New" para crear una nueva configuración. Dentro de la pestaña "Main" hay que dar nombre a la nueva configuración seleccionar el programa que contiene la clase con el método main y seleccionar felicidad clase. El método "main" es el punto de ejecución de un proyecto Java, y se representa como un chico icono de un tio corriendo al lado del icono de la clase. Si se quiere pasar argumentos al método main (en la manera de "String[] args", no hay más que realizar clic en la solapa de "Arguments" y escribir esos argumentos separados por lugar dentro de la zona en blanco de "Program Arguments". Finalmente, realizar clic en el botón "Run" lanzará la ejecución del proyecto seleccionado. Una manera más rápida de arrancar la ejecución del proyecto recientemente ejecutado es pulsar en el icono de un tio corriendo que surge en el menú principal. Pulsar la saeta próxima a este icono mostrará otras configuraciones de ejecución recientemente utilizadas. Depurar Aunque Java no es tan difícil de depurar como otros lenguajes de programación, también es perfectamente probable que surjan complejos dificultades de ejecución. Eclipse da apoyo completo a la tare de depuración a través de su perspectiva "Debug" ("Window > Open Perspective > Debug" o seleccionando el icono del "bicho" en el borde izquierdo). Dentro de esta perspectiva de depuración, haciendo clic en el borde izquierdo del editor de código aparecerá un menú contextual. Seleccionando "Add/Remove Breakpoint" añadirá o quitará un punto de ruptura, entretanto que "Toggle Breakpoint" cambiará el estado de activación del punto de ruptura. Los puntos de ruptura marcan líneas en que la ejecución del proyecto se detendrá de forma que sea probable verificar el valor de las variables en ese instante, identificando así probables errores. Haciendo clic derecho en un punto de ruptura y seleccionando "Breakpoint Properties..." permitirá especificar alternativas avanzadas del punto de ruptura. "Hit Count" especifica que la ejecución del proyecto se detendrá cuando se pase por el punto de ruptura el número especificado de veces. Las cláusulas de activiación detendrán la ejecución cuando la condición sea alguna o bien cuando el valor de la condición cambie. Especificar una variable como una condición de activación y seleccionar "suspend when value of condition changes" es una manera de "detener la ejecución en el punto de ruptura cuando felicidad variable sea modificada". Las excepciones son uno de los síntomas más evidentes de yerros de ejecución. Los "Java Exception Breakpoints" detienen la ejecución cuando salta una excepción del tipo seleccionado. Estos puntos de ruptura se activan haciendo clic en el icono "J!" de la vista de "Breakpoints" o desde el menú principal "Run". La ejecución puede pararse cuando la excepción sea capturada, no capturada o ambas. Agregar siempre los puntos de ruptura de excepciones Java de "ArrayIndexOutOfBoundsException" (lanzada cuando el índice de una matriz se sale de sus dimensiones) y "NullPointerException" (lanzada cuando se intenta alcanzar a una referencia que apunta a null) es una práctica de depuración recomendada. Si se quiere que el proyecto se detenga en los puntos de ruptura definidos deberá ser ejecutado en modo depuración ("Run > Debug...". Tras pararse en un punto de ruptura la ejecución del proyecto puede continuar de variadas maneras. Haciendo clic derecho en el editor de código dentro de la perspectiva de depuración aparecerá un menú contextual con estas opciones. "Run to line" reanuda la ejecución del proyecto hasta que se consigue la línea en que está el cursor. "Step into selection" continuará la ejecución dentro del método seleccionado siempre y cuando el código fuente del método esté disponible. La ejecución también puede reanudarse mediante un clic derecho en la ventana de "Debug" y seleccionando las alternativas adecuadas, o directamente pulsando los iconos de felicidad ventana. "Step over" parará en la línea próximo a la invocación de un método. "Resume" reanudará la ejecución usual del proyecto y sólo se interrumpirá en los puntos de ruptura si sus cláusulas de activación se satisfacen. La vista "Variables" ofrece información ciertamente provechoso ya que presenta los valores que tienen actualmente las variables cuando la ejecución se detienen en un punto de ruptura. La vista de "Debug" también es provechoso para contemplar distintos procesos que están siendo ejecutados simultáneamente, como por ejemplo, hebras. Cuando el proceso de depuración ha terminado, los procesos mostrados en la ventana de depuración se muestran como "Finished" (pueden acabarse manualmente con "Clic derecho > Terminate". La información de ejecuciones previas puede elminarse realizando clic derecho sobre ella y seleccionando "Terminate and Remove" o "Terminate All" más "Remove All Terminated". Gestión de Cambios No es raro cambiar código del proyecto y darse cuenta después de que la nueva versión funciona inclusive aún peor que la primera versión. Ese es el causa de que los programadores tengamos que guardar distintos versiones del proyecto cada vez que introducimos un nuevo cambio. Sin embargo, esta práctica ineludible es usualmente tediosa y consume mucho tiempo. Afortunadamente, Eclipse ofrece un potente sistema de gestión de cambios y de control de versiones. Haciendo clic derecho en un archivo Java dentro del Package Explorer y selecionando "Replace With > Local History" permitirá reemplazar la versión actual por una versión preliminarmente guardada. La hora y fecha de modificación se muestran junto con dos ventanas que destacan las diferencias existentes entre ambas versiones. Seleccionando "Window > Preferences > Workbench > Local History" permitirá seleccionar cuantas versiones, megas y días almacenar. Así pues, se puede conseguir un buen equilibrio personalizado entre seguridad y eficiencia. Fuentes: