1.4. Entornos de Desarrollo Java

Veremos a continuación ejemplos de entornos de desarrollo utilizados para escribir, compilar y ejecutar programas Java.

 

1.4.1. La consola: JDK

El método más directo (y a veces más costoso) de programar en Java es utilizar directamente los programas que proporciona la distribución JDK (Java Development Kit) de Sun. Es necesario tener instalada esta distribución para poder trabajar con otros entornos de desarrollo, puesto que dichos entornos se apoyan en la API de clases que viene con JDK.

La instalación es bastante inmediata (tanto en Windows como en Linux). En windows habrá que elegir el directorio donde instalar, y en Linux en general se descomprime en el lugar que se quiera. También es recomendable instalar (descomprimir) la documentación de la API

Variables de entorno

Para su correcto funcionamiento, Java necesita tener establecidas algunas variables de entorno: las variables PATH y CLASSPATH.

La variable de entorno del sistema PATH deberá contener la ruta donde se encuentren los programas para compilar y ejecutar con JDK (javac y java, respectivamente). Por ejemplo:

set PATH=%PATH%;C:\jdk1.4\bin		
(Windows)
export PATH=$PATH:/jdk1.4/bin		
(Linux)

Con la variable CLASSPATH indicamos dónde están las clases externas a las de la API que utilicemos. Por ejemplo, si están en \misclases

set CLASSPATH=%CLASSPATH%;C:\misclases	
(Windows)
export CLASSPATH=$CLASSPATH:/misclases	
(Linux)

Si las clases pertenecen a un paquete concreto, se debe apuntar al directorio a partir del cual comienzan los directorios del paquete. Por ejemplo, si la clase MiClase está en el paquete unpaquete, dentro de \misclases (\misclases\unpaquete\MiClase.class):

set CLASSPATH=%CLASSPATH%;C:\misclases	
(Windows)
export CLASSPATH=$CLASSPATH:/misclases	
(Linux)

Si las clases están empaquetadas en un fichero JAR, se tendrá que hacer referencia a dicho fichero. Por ejemplo:

set CLASSPATH=%CLASSPATH%;C:\misclases\misclases.jar
(Windows)
export CLASSPATH=$CLASSPATH:/misclases/misclases.jar
(Linux)

Nunca está de más incluir en el CLASSPATH el directorio actual:

set CLASSPATH=%CLASSPATH%;.	
(Windows)
export CLASSPATH=$CLASSPATH:.
(Linux)

 

Las expresiones %VARIABLE% (en Windows) o $VARIABLE en (Linux) se utilizan para no sobreescribir el contenido anterior de la variable, sino añadirle lo que se ponga además de dicha expresión. Los distintos ficheros/directorios asignados a cada variable se separan con ';' (en Windows) o con ':' (en Linux). 

Para hacer estos cambios permanentes deberemos modificar los ficheros de autoarranque de cada sistema operativo, añadiendo las líneas correspondientes en autoexec.bat (para Windows) o /etc/profile (para Linux).

La forma de establecer las variables cambia en función de la versión de Windows o Linux. Por ejemplo, en Windows 2000 o XP se pueden establecer variables de entorno directamente desde el panel de control. Y en versiones distintas de Linux se utilizan distintos shells con comandos de establecimiento distintos al export.

 

Compilar y ejecutar clases

Si queremos compilar el siguiente fichero ejemplo , se compila con javac:
javac Persona.java

Tras haber compilado el ejemplo se tendrá un fichero Persona.class . Ejecutamos el programa con java :

java Persona
Si se quisieran pasar parámetros al programa (este ejemplo no pide parámetros), se pasan después de la clase:
java Persona 20 56 Hola

También podemos ejecutar un fichero JAR, si contiene una clase principal. Para ello pondremos:

java -jar Fichero.jar

Compilamos ahora el siguiente fichero ejemplo , que utiliza algunas clases más aparte de la principal. En este caso se utilizan varias clases, y una que está en un fichero JAR. Hay que incluir en el CLASSPATH el fichero JAR (las otras no porque están en el mismo directorio):

set CLASSPATH=%CLASSPATH%;.\maspersonas.jar
(Windows)
export CLASSPATH=$CLASSPATH:./maspersonas.jar
(Linux)
Luego se compila y ejecuta igual que en el ejemplo anterior

Notar que para compilar se pone la extensión del fichero (.java ), pero para ejecutar no se pone la extensión .class. Los nombres de ficheros que pasemos para compilar y ejecutar deben coincidir en mayúsculas y minúsculas con los nombres reales. También notar que al compilar una clase, se compilan automáticamente todas las otras clases que utiliza internamente (en este ejemplo, al compilar Persona se compilan también Elefante y Mosca , que están en las carpetas animales e insectos, respectivamente). Si alguna clase que necesitemos no se compila, deberemos compilarla a mano después.

 

1.4.2. Elaboración de entornos gráficos: Forte

Esta herramienta tiene su utilidad sobre todo a la hora de realizar aplicaciones que contengan entornos gráficos (ventanas, menús, etc). Como inconveniente, necesita muchos requerimientos del sistema (memoria y velocidad de procesamiento)

Figura 1. Ventana principal de Forte

En la parte superior se tienen los menús y barras de herramientas. Se tienen pestañas para editar código (Editing), editar formularios (GUI Editing ), mostrar la salida de ejecución (Running), etc. En la parte izquierda se tienen los proyectos y ficheros que se manejan, y en la derecha se tienen los formularios y código que se realice.

Se puede obtener más información sobre Forte en las páginas de Sun:

http://forte.sun.com/ffj/index.html
http://forte.sun.com/ffj/documentation/index.html

Para instalarlo se debe instalar antes JDK 1.3.1 o posterior, y luego seguir las instrucciones que se indiquen en la instalación. Tras instalar, al arrancar el programa por primera vez se completa la instalación.

Proyectos

Con Forte también podemos definir proyectos, aunque la forma de gestionarlos es distinta a JCreator. Forte trabaja con proyectos (Projects) y sistemas de ficheros (Filesystems), de modo que un proyecto engloba sistemas de ficheros.

Podremos crear nuevos proyectos o abrir proyectos existentes desde el Project Manager del menú Project . Para gestionar los sistemas de ficheros, en la pestaña Filesystems de la parte izquierda podremos cargar directorios o ficheros JAR, pulsando con el botón derecho sobre Filesystems y eligiendo la opción del menú Mount. Luego desde la pestaña Project podemos añadir los Filesystems que consideremos al proyecto (opción Add Existing con el botón derecho).

Compilar y ejecutar clases

Compilamos el siguiente fichero ejemplo . Para ello lo abrimos con Forte. Nos dirá que lo coloca en el paquete por defecto. Luego, para compilarlo se tiene la opción Compile del menú Build. Para ejecutar elegimos la opción Execute del menú Build.

Compilamos ahora el siguiente fichero ejemplo . Creamos un proyecto Proyecto2, y le añadimos el directorio donde tenemos las clases, y aparte el fichero JAR que contiene (como un Filesystem aparte). Para compilar el proyecto elegimos la opción Compile Project del menú Project, y para ejecutarlo elegimos la opción Execute Project del menú Project. Podemos establecer la clase principal del proyecto con la opción Set Main Class del menú Project.

1.4.3. Otros entornos

1.4.3.1. JCreator

JCreator es una herramienta que no da tantas posibilidades como Forte, pero permite editar, compilar y ejecutar código Java. Su apariencia es la siguiente: 

Figura 2. Ventana principal de JCreator

En la parte superior están los menús y barras de herramientas. A la izquierda se tienen las clases y proyectos que se tengan, y los campos y métodos de la clase seleccionada. La zona derecha es el editor de texto, donde se verá el código de las clases que se tengan. Abajo se muestran los resultados.

1.4.3.2. Kawa

Kawa es una herramienta muy parecida a JCreator en cuanto a funcionalidades. Su apariencia es la siguiente: 

Figura 3. Ventana principal de Kawa

En la parte superior están los menús y barras de herramientas. A la izquierda se tienen las clases y proyectos que se tengan. La zona derecha es el editor de texto, y abajo se muestran los resultados.

 

1.5. Introducción a los Applets

Un applet es una aplicación normalmente corta (aunque no hay límite de tamaño), cuya principal funcionalidad es ser accesible a un servidor Internet (una aplicación que pueda visualizarse desde un navegador). Para ello se carga la clase del applet en un fichero HTML, mediante código como:

<HTML>
<BODY>
...
<APPLET CODE = nombre_prog.class WIDTH = 300 HEIGHT = 100>
</APPLET>
...
</BODY>
</HTML>
Aquí tenemos un ejemplo:

Código     Applet

El appletviewer es un navegador mínimo proporcionado con Java, que espera como argumento el fichero HTML donde está el applet que se cargará:

appletviewer nombre_prog.html