Anda di halaman 1dari 4

Archivos JAR

Pgina 1 de 4

Programacin - RafaC - 2005/2006

Ficheros JAR
1 Qu son los ficheros JAR? 2 Creacin en un terminal de texto 3 Applets 4 Creando ficheros .jar desde JCreator

1 Qu son los ficheros JAR?


Como hemos visto una aplicacin en Java est compuesta por varios ficheros .java. Al compilarlos obtenemos varios ficheros .class (uno por fichero .java), y no un nico fichero ejecutable como ocurre en otros lenguajes. Para colmo, a menudo la aplicacin est formada no slo por los ficheros .class sino que usa ficheros de sonido (usualmente .au en Java), iconos, etc., lo que multiplica la cantidad de ficheros que forman la aplicacin compilada. Esto hace que "llevarse" la aplicacin para ejecutarla en un ordenador diferente resulte un poco lioso: olvidar cualquiera de los ficheros que componen la aplicacin significara que sta no va a funcionar correctamente. En el caso de un applet se aade el problema de la velocidad, al tener que viajar todos los ficheros a travs de internet. Los ficheros Jar (Java ARchives) permiten recopilar en un slo fichero varios ficheros diferentes, almacenndolos en un formato comprimido para que ocupen menos espacio. Es por tanto, algo similar a un fichero .zip (de hecho estn basados en ficheros .zip). Entonces, dnde est la "gracia"? No se podrn usar directamente ficheros .zip? La particularidad de los ficheros .jar es que no necesitan ser descomprimidos para ser usados, es decir que el intrprete de Java es capaz de ejecutar los archivos comprimidos en un archivo jar directamente. Por ejemplo, si hemos recopilado todos los ficheros necesarios para ejecutar una aplicacin en un fichero "aplic.jar", podemos lanzar la aplicacin desde una terminal de texto mediante:
java -jar aplic.jar

Vamos a ver ahora cmo se crean los ficheros .jar.

2 Creacin en un terminal de texto


Hemos visto que se puede lanzar una aplicacin llamando al intrprete de java (comando java) seguido

http://gpd.sip.ucm.es/rafa/docencia/programacion/tema1/jar.html

10/05/2013

Archivos JAR

Pgina 2 de 4

de -jar y del nombre del fichero .jar correspondiente. Sin embargo hay algo en todo esto que no "encaja": Si el fichero .jar contiene muchos ficheros .class, cul de todos se ejecuta? Sabemos que debe ejecutarse el que contiene el mtodo main pero, cmo sabe el intrprete de Java que clase de todas las del fichero contiene este mtodo? La respuesta es que lo sabe porque se lo tenemos que decir durante la creacin del fichero jar. Y la forma de hacerlo es un poco liosa. Vamos a verlo paso a paso. Para simplificar suponemos que estamos en un terminal de texto (consola Linux o smbolo del sistema en Windows), que el comando jar es accesible (es decir, la carpeta que contiene jar.exe est en el Path) y que nos encontramos en el directorio donde se encuentran los ficheros .class que deseamos "empaquetar". Crear un directorio META-INF (las maysculas son importantes!) y dentro un fichero MANIFEST.MF. Este fichero indica, entre otras cosas, cual ser la clase principal. A menudo el fichero MANIFEST.MF contiene una nica lnea:

Main-Class: Principal

indicando que Principal.class es la clase que contiene el mtodo main. Observacin : El fichero MANIFEST.MF se puede crear con cualquier editor de texto. Hay que introducir un fin de lnea (enter) tras la ltima linea con texto.

Crear el fichero .jar mediante el comando

jar cfm fich.jar META-INF/MANIFEST.MF *.class

El nombre fich.jar es el que nosotros queramos y corresponde al fichero .jar que se crear conteniendo todos los ficheros indicados (en este caso todos los ficheros .class). Se puede comprobar que el contenido del fichero es el el adecuado escribiendo:

jar tf fich.jar

que mostrar la lista de clases contenidas en el fichero. Este comando tambin puede ser til para examinar el contenido de las libreras del sistema. Para lanzar el archivo basta con teclear ahora:

java -jar fich.jar

http://gpd.sip.ucm.es/rafa/docencia/programacion/tema1/jar.html

10/05/2013

Archivos JAR

Pgina 3 de 4

Si alguna vez se quiere "desempaquetar" el contenido de un archivo jar se pueden usar las opciones "xf":

jar fich.jar

Esto puede resultar particularmente til si queremos echar un vistazo a algunos paquetes del sistema que vienen de esta forma.

3 Applets
Aunque an no sepamos demasiadas cosas sobre applets este es un buen punto para indicar como se debe usar la herramienta jar en relacin a los applets. Vamos a verlo con un ejemplo: supongamos que tenemos un applet de nombre TicTacToe.java. Suponemos que ya est compilado, es decir que ya existe el fichero TicTacToe.class. Adems suponemos que este applet utiliza imgenes, que se encuentran en una carpeta images y sonidos que se encuentran en una carpeta sounds. Es decir, tenemos (resultado de hacer "dir" en un smbolo del sistema): Queremos crear un fichero .jar para guardar toda esta informacin en un nico fichero, que ser el que "viaje" por internet. Para ello se hace:
jar -cf titac.jar TicTacToe.class audio images

Como se puede ver no se ha incluido el fichero TicTacToe.java (porque no es necesario para la ejecucin del programa, aunque se podra haber incluido si se hubiera querido). Ya tenemos el fichero tictac.jar creado. Para cargar el applet desde una pgina html slo debemos copiar este fichero a la misma carpeta donde este la pgina. La pgina por su parte debe incluir un cdigo similar al siguiente cdigo para "incrustar" el programa Java:
<applet code="TicTacToe.class" archive="tic.jar" width="120" height="120"> </applet>

4 Creando ficheros .jar desde JCreator


Se puede configurar JCreator para llamar al comando jar. Brevemente estos son los pasos a seguir una vez: Dentro del men Configure elegir la opcin Options . En la ventana que aparece, hacemos click sobre la palabra Tools que aparece en la lista de la izquierda. La pantalla tendr el aspecto:

http://gpd.sip.ucm.es/rafa/docencia/programacion/tema1/jar.html

10/05/2013

Archivos JAR

Pgina 4 de 4

tools

(salvo porque la parte derecha no estar vaca si ya hemos introducido otras herramientas como los accesos a javadoc). Pulsar el botn New y del men desplegable que aparece elegir la opcin: Create Jar File . Pulsamos "OK" y ya tenemos JCreator para crear ficheros .jar con el contenido del proyecto que tengamos Java, sin ms que pulsar el botn de herramientas que hayamos configurado (la llave inglesa con el nmero correspondiente, por ejemplo 1 si es la primera herramienta que configuramos). De todas formas hay que hacer algunas observaciones: Un fallo (gordo) de esta herramienta es que no crea un fichero MANIFEST adecuado. Esto hace que el "empaquetamiento" sea til para applets (donde el fichero MANIFEST no importa), pero no para aplicaciones con main. El fichero generado lleva el nombre del proyecto (y extensin .jar, obviamente). Queda almacenado en el directorio del proyecto de JCreator. A menudo pare encontrarlo lo ms fcil es usar el buscador de Windows. Observacin: Por supuesto los pasos anteriores slo hay que hacerlos una vez; la prxima vez que entremos en JCreator se podrn usar las herramientas directamente.

2004-2005 Rafael Caballero

http://gpd.sip.ucm.es/rafa/docencia/programacion/tema1/jar.html

10/05/2013

Anda mungkin juga menyukai