Programación Orientada a Objetos. Curso 10/11
Java es un poco más demandante que C o C++ en cuanto a la
organización del código. En concreto, el sistema de "un paquete, un
directorio" exige tener una cierta estructura de directorios. Y además,
cada clase pública tiene que estar en un fichero .java que se llame
igual que la clase en sí. Esta es una pequeña guía para empezar
entender qué va dónde, y cómo se puede trabajar con ello desde línea de
comandos, desde distintas versiones de NetBeans, y con JCreator: los
entornos que se pueden encontrar en las aulas de la EPS.
Contenido de esta guía:
Toda clase pública Java (y todas las
clases que componen esta práctica son públicas) debe estar definida
dentro de un archivo que tenga el mismo nombre que la clase, y que esté
situado en un directorio que corresponda al paquete de la clase. Las clases se
asocian a paquetes mediante la sentencia package <nombre_de_paquete>; situada inmediatamente al comienzo de la clase.
Por ejemplo, si un
fichero Peon.java incluye la declaración de pertenencia a paquete
package es.uam.eps.ajedrez;, el entorno esperará que esté situada en
<raiz_del_proyecto>/es/uam/eps/ajedrez/Peon.java. Y si no está
ahí, se producirán errores en la compilación. Si no hay ninguna
sentencia "package", la clase queda asignada al "paquete por defecto" -
es decir, el entorno la buscará en <raiz_del_proyecto>/Peon.java. En general, nunca se deben escribir clases sin paquete.
Los entornos de desarrollo java exigen que se respete este esquema.
Para ello deben estar presentes, en
el 1er nivel de profundidad de un proyecto, los directorios que
representen los paquetes que se van a emplear.
En C y C++ hay "makefiles", que permiten compilar, ejecutar y probar
de forma sencilla proyectos de todo tamaño. En el mundo Java ha cobrado
fuerza "ant", que cumple el mismo cometido. En general, en todo proyecto se encontrarán los siguientes directorios y ficheros:
Es decir: un "build.xml" es como un "makefile", "ant" es la herramienta que ejecuta un "build.xml" al igual que "make" ejecuta un "makefile", y los directorios build/ y javadoc/ se pueden borrar con total impunidad. Generalmente, basta con ejecutar "ant clean".
Los scripts de "ant" se proporcionarán junto con el código de cada
entrega, y en general no habrá que cambiarlos salvo para puntos
menores. Es obligatorio entregar un script que funcione junto con cada
práctica. El formato de los scripts es bastante fácil de entender
(escribirlo desde cero es un pelín más difícil). Hay documentación
abundante en http://ant.apache.org/manual/.
En una consola (bajo Windows 2000/XP se pueden abrir consolas con
ejecutar->cmd, en Windows 3.1/9x/Me se usa ejecutar->command) hay
que situarse en el directorio donde está el script "ant", es decir,
"build.xml".
A partir de ahí, para compilar se usa
ant compile
Para ejecutar se usa
ant -Dargs="argumentos" run
Y para limpiar todo lo que no es imprescindible (por ejemplo, antes de enviar la praćtica), basta usar
ant clean
Tanto "compile" como "exec" y "clean" estarán declarados así en el
script de compilación incluido con cada entrega. Es decir, no es que
estos nombres sean comunes a todos los proyectos que se compilan con
"ant" -- es que, en los scripts que entreguemos para las prácticas de
POO, van a ser éstos.
Para saber qué está definido en un "build.xml", puedes leerlo (no es más ilegible que un makefile), o bien puedes ejecutar
ant -p
Estas versiones de NetBeans ya usan compilación con "ant"; eso es una ventaja. La desventaja es que lo ponen mucho más difícil para compilar código sin crear un proyecto. Para crearlo, File->New Project->Java project with existing Ant script, y debería aparecer una ventana similar a ésta:

En la parte de "Location" basta con decir el directorio donde se encuentra el fichero "build.xml". El resto de los campos se deberían rellenar solos. En el siguiente paso, hay que elegir cómo se asocian las acciones de "compilar", "ejecutar" y similares del entorno NetBeans con las definidas por el script ant. Por ejemplo:

En el paso 4 (el paso siguiente) se deberá
indicar que el código fuente está en el directorio "src". Esto hará que
NetBeans lo muestre y compile. En el paso 5 no hace falta hacer nada:
el proyecto ya estará preparado para trabajar con él.
Una vez acabada la creación del proyecto,
NetBeans crea un directorio "nbproject", al mismo nivel que "src".
Mientras este directorio esté presente, no hará falta recrear el
proyecto: se podrá abrir con "open project".
Para añadir los fuentes de la práctica 1 al entorno NetBeans, hay que "montar" un directorio local - aquel que sea inmediatamente superior al directorio "ajedrez". Una captura de pantalla es la siguiente:

En el entorno JCreator, primero hay que
crear un proyecto nuevo (no hay "proyecto por defecto"), y luego añadir
ficheros existentes. JCreator ya crea él sólo la carpeta
correspondiente a los paquetes que detecte . El proyecto, listo para
compilar, debe ser similar al siguiente:
