Prácticas

Práctica 01

Objetivo: crear un Proyecto Java en Eclipse para una aplicación de línea de comandos así como un archivo JAR ejecutable a partir del proyecto.

  1. En la barra de menú de Eclipse accede a File > New > Java Project y rellena el formulario de la ventana New Java Project con lo siguiente:

    • Name: java01
    • Location: observa que este campo establesca la creación de java01 dentro del workspace.
    • Use an execution environment JRE: JavaSE-1.8

    Da click al botón Next y finalmente al botón de Finish.

    Al terminar contarás con la siguiente estructura en jee01:

     alumno@servidor:~/code/eclipse/java$ pwd && tree java01/
     /home/alumno/Code/eclipse/java
     java01/
     ├── bin
     └── src
     2 directories, 0 files
    
  2. En la vista Package Explorer de Eclipse da click derecho sobre el proyecto java01, accede a New > Class y rellena el formulario de la ventana New Java Class con lo siguiente:

    • Package: poo.java01
    • Name: Main
    • Modifiers: public
    • Selecciona la opción public static void main(String[] args). Desactiva las opciones debajo de esta.

    Da click al botón Finish.

    Al terminar contarás con la siguiente estructura en jee01:

     alumno@servidor:~/code/eclipse/java$ pwd && tree java01/
     /home/alumno/Code/eclipse/java
     java01/
     ├── bin
     │   └── poo
     │       └── java01
     │           └── Main.class
     └── src
         └── poo
             └── java01
                 └── Main.java
     6 directories, 2 files
    

    Observaciones sobre el contenido de java01:

    • src/: directorio que mantendrá los archivos con códifo fuente Java del proyecto y que serán compilados.
    • bin/: directorio que mantendrá los archivos con Java bytecode del proyecto y que serán ejecutados en la JVM.
    • poo y java01: directorio que representa un paquete Java (Java Package). El paquete java01 se encuentre dentro del paquete poo.
    • Main.java: archivo con código fuente Java. Al tener la definición del método public static void main(String[] args) se le considera el punto de inicio o de ejecución de la aplicación, también conocida como la clase principal.
    • Main.class: archivo con Java bytecode.
  3. Modifica el contenido de Main.java con lo siguiente: Main.java.txt

    Ejecuta el proyecto en Eclipse:

    • En la vista Package Explorer da click derecho sobre el proyecto java01, accede a Run As > Java Application.
    • En la barra de menú accede a Run > Run.
    • Aprieta el juego de teclas (shortcut) Ctrl + F11.

    Al terminar contarás con la siguiente estructura en jee01:

     alumno@servidor:~/code/eclipse/java$ pwd && tree java01/
     /home/alumno/Code/eclipse/java
     java01/
     ├── bin
     │   └── poo
     │       └── java01
     │           ├── Despedida.class
     │           ├── Main.class
     │           └── Saludo.class
     └── src
         └── poo
             └── java01
                 └── Main.java
     6 directories, 4 files
    
  4. Modifica el cuerpo del método public static void main(String[] args) en Main.java con lo siguiente:

     Saludo saludo;
     Despedida despedida;
     if (args.length == 1) {
         saludo = new Saludo(args[0]);
         despedida = new Despedida(args[0]);
     } else {
         saludo = new Saludo("mundo");
         despedida = new Despedida("mundo");
     }
     System.out.println(saludo.saludar());
     System.out.println(despedida.despedir());
    

Ejecuta una vez más el proyecto.

  1. En la vista Package Explorer de Eclipse da click derecho sobre el proyecto java01, accede a Run As > Run Configurations....

    Cerciorate que en la ventana Run Configurations el nodo Java Application > Main se encuentre seleccionado, accede a la pestaña Arguments, agrega al campo Program arguments lo siguiente: ${system:OS}. Da click al botón Run para ejecutar el proyecto.

    Hasta aquí se ha logrado tener una aplicación con una clase principal (Main) la cual:

    1. Contiene la definición de dos clases finales: Saludo y Despedida.
    2. Permite recibir un argumento para su ejecución.

    NOTA: ${system:OS} es una variable-función que permite obtener un valor en Eclipse, en este caso el nombre del sistema operativo.

  2. En la vista Package Explorer de Eclipse da click derecho sobre el proyecto java01, accede a Export. Ante la ventana Export selecciona el nodo Runnable JAR file y da click al botón Next.

    Rellena el formulario de la ventana Runnable JAR File Export con lo siguiente:

    • Launch configuration: Main - java01
    • Export destination: /home/alumno/java01.jar

    Y selecciona la opción Extract required libraries into generated JAR.

    Da click al botón Finish.

    Al terminar accede a $HOME en la línea de comandos y ejecuta al archivo JAR:

     alumno@servidor:~$ pwd
     /home/alumno
     alumno@servidor:~$ file java01.jar 
     java01.jar: Zip archive data, at least v2.0 to extract Java archive data (JAR)
     alumno@servidor:~$ java -jar java01.jar 
     ¡Hola mundo!
     ¡Adios mundo!
     alumno@servidor:~$ java -jar java01.jar "LINUX"
     ¡Hola LINUX!
     ¡Adios LINUX!
     alumno@servidor:~$ java -jar java01.jar "12345"
     ¡Hola 12345!
     ¡Adios 12345!
     alumno@servidor:~$ java -jar java01.jar "♞"
     ¡Hola ♞!
     ¡Adios ♞!
     jalumno@servidor:~$ ava -jar java01.jar "$(uname -or)"
     ¡Hola 4.11.6-1-default GNU/Linux!
     ¡Adios 4.11.6-1-default GNU/Linux!
    

RECOMENDACIÓN: como se puede obervar el archivo java01.jar es un archivo comprimido en formato ZIP. Estudia el contenido del archivo java01.jar, en especial el archivo META-INF/MANIFEST.MF.

Lecturas

Práctica 02

Objetivo: similar al de la Práctica 01 pero agregando al proyecto el uso de librerías externas (archivos JAR).

Las librerías a usar serán:

Realiza los primeros dos pasos dados en la Práctica 01 tomando en cuenta que el proyecto ahora se llamará java02.

Definición de User Libraries en Eclipse

En Eclipse podrás definir una librería de usuario (User Library), la cual podrás posteriormente asociar a distintos proyectos. Lo anterior tiene que ver con el CLASSPATH de Java y como Eclipse administra su definición para ubicar librerías externas al proyecto para su uso-compilación.

  1. Descarga las librerías:

    Crea un directorio donde mantendrás un repositorio local de librerías de Java, por ejemplo: /home/alumno/code/jars/.

    Al finalizar contarás con una estructura similar a la siguiente en tu repositorio local:

     alumno@servidor:~/Code/jars$ pwd && tree -L 3
     /home/alumno/Code/jars
     .
     ├── commons-csv
     │   ├── commons-csv-1.5
     │   │   ├── apidocs
     │   │   ├── commons-csv-1.5.jar
     │   │   ├── commons-csv-1.5-sources.jar
     │   │   ├── LICENSE.txt
     │   │   ├── NOTICE.txt
     │   │   └── RELEASE-NOTES.txt
     │   └── commons-csv-1.5-bin.zip
     └── j2html
         └── j2html-1.3.0
             └── j2html-1.3.0.jar
     5 directories, 7 files
    
  2. Define User Libraries en Eclipse:

    De la barra de menú de Eclipse accede a Window > Preferences. Ante la ventana Preferences accede a Java > Build Path > User Libraries:

    • Apache Commons CSV: da click al botón New, ingresa en el campo User Library Name commons-csv-1.5 y da click al botón de OK. Selecciona a commons-csv-1.5, da click al botón Add External JARS, localiza el archivo commons-csv-1.5.jar dentro de tu repositorio local de archivos JAR.

    • j2html: da click al botón New, ingresa en el campo User Library Name j2html-1.3.0 y da click al botón de OK. Selecciona a j2html-1.3.0, da click al botón Add External JARS, localiza el archivo j2html-1.3.0.jar dentro de tu repositorio local de archivos JAR.

    Finalmente da click al botón de OK en la ventana de Preferences.

  3. Integra User Libraries a un proyecto:

    En la vista Package Explorer da click derecho sobre java02 y selecciona Properties. Ante la ventana de Properties for java02 accede a Java Build Path > Libraries, da click al botón Add Library, selecciona User Library, da click al botón Next, selecciona las dos librerías recien definidas y da click al botón Finish.

    Finalmente da click al botón de OK en la ventana de Properties for java02.

Código fuente

En la vista Package Explorer da click derecho sobre java02 > src > New y crea lo siguiente:

Guarda los cambios hechos en el proyecto.

Ejecución

En la vista Package Explorer de Eclipse da click derecho sobre el proyecto java02, accede a Run As > Run Configurations....

Cerciorate que en la ventana Run Configurations el nodo Java Application > Main se encuentre seleccionado, accede a la pestaña Arguments, agrega al campo Program arguments lo siguiente: "archivos-csv/asegurados.csv". Da click al botón Run para ejecutar el proyecto.

Hasta aquí se ha logrado tener una aplicación con una clase principal (Main) la cual:

  1. Recibe como parámetro el nombre de un archivo con formato CSV e información de asegurados.
  2. De encontrarse dicho archivo se es leído (parseado) mediante la librería Apache Commons CSV, convertido a un documento HTML mediante la librería j2html y finalmente mediante Java Swing se muestra el documento HTML generado en un JTextPane.

Lecturas