ROJANO GALLARDO JESUS EMANUEL
POO2 6CM4
TAREA 3
ARCHIVOS .JAR
Cuando hacemos un programa java, normalmente tenemos varios ficheros
java. Al compilarlos, obtenemos varios ficheros .class. Además, si metemos
nuestras clases en paquetes (con package), estos .class van distribuidos en
una estructura de directorios paralela a la de los paquetes. Por ejemplo, si
nuestra clase pertenece a un paquete [Link], entonces el .class
estará situado en un subdirectorio prueba que está situado a su vez en un
subdirectorio chuidiang.
Si queremos distribuir nuestro programa java, deberíamos distribuir todos
los .class, con su estructura de directorios completa. Esto está claro que es
un poco pesado.
Java, con su utilidad jar (en JAVA_HOME/bin), nos permite empaquetar
todas estas estructuras de directorios y ficheros .class en un único fichero
de extensión .jar. Un fichero .jar no es más que un fichero que contiene
dentro otros ficheros, similar a los .zip o .rar de winzip o winrar. De esta
forma, podemos distribuir nuestro programar en un solo fichero .jar
La forma de crear un fichero .jar desde una ventana de ms-dos o shell de
unix es esta
$ jar cf [Link] [Link] [Link] directorio1 directorio2
Esto meterá en [Link] todos los .class que le pasemos y los directorios,
con su contenido completo. Si la clase que contiene el main está en
[Link], la forma de ejecutar este jar es así
$ java -cp [Link] [Link]
es decir, indicando en la opción -cp (classpath) el fichero .jar y luego el
nombre de la clase que tiene el main.
Si en nuestra aplicación necesitamos adicionalmente otros jar de otras
librerías que nos hayamos bajado, NO podemos meterlos dentro de nuestro
jar como un fichero más. Debemos distribuir todos los jar por separado (el
nuestro y el de las librerías) y a la hora de ejecutar hay que añadirlas al
CLASSPATH con la opción –cp
ROJANO GALLARDO JESUS EMANUEL
POO2 6CM4
TAREA 3
En linux:
$ java -cp [Link]:/path/[Link] [Link]
En windows
C:\> java -classpath [Link]; C:\path\[Link]
[Link]
Fijate que en linux el separador es : y en windows es ;
EL FICHERO DE MANIFIESTO
Para evitar tener que recordar el nombre de la clase con el main, se puede
poner en un fichero especial (llamado fichero de manifiesto) y meter este
fichero dentro del jar. Para ello, escribimos un fichero de texto con cualquier
nombre (por ejemplo, [Link]) con el siguiente contenido
Main-Class: [Link]
A la hora de hacer el jar, lo metemos también jar cmf [Link]
[Link] [Link] [Link] directorio1 directorio2
La opción m indica que el fichero que va detrás es el de manifiesto y el
comando jar lo tratará de forma especial. Si ponemos las opciones como en
el ejemplo, es decir, mf, primero se pone el fichero de manifiesto y luego el
nombre del fichero jar. Si las ponemos al revés, es decir fm, entonces se
pone primero el nombre del fichero jar y luego el de manifiesto. El resto se
supone que son ficheros o directorios que se van a meter en el jar.
Una vez hecho esto, se ejecuta así
java -jar [Link]
La opción -jar indica que se debe buscar dentro del fichero .jar el fichero de
manifiesto y ejecutar la clase que se indica allí.
EJECUTAR EL JAR DESDE WINDOWS
Podemos configurar windows para que abra los ficheros .jar con el comando
javaw. Si instalamos java 5 esto se hace automáticamente. Si no, dando a
"mi pc", "herramientas", "opciones de carpeta", "tipos de archivo", buscamos
o creamos JAR, "opciones avanzadas", "open", "modificar" y ponemos algo
como esto
ROJANO GALLARDO JESUS EMANUEL
POO2 6CM4
TAREA 3
"C:\Archivos de programa\Java\jre1.5.0_06\bin\[Link]" -jar "%1" %*
Con esto, dando doble click sobre un fichero jar que tenga fichero de
manifiesto, se ejecutará el programa java.
Formato de archivo usado para empaquetar todos los componentes
requeridos por un Java [Link] archivo JAR (por sus siglas en inglés,
Java ARchive) es un tipo de archivo que permite ejecutar aplicaciones
escritas en lenguaje Java. Las siglas están deliberadamente escogidas para
que coincidan con la palabra inglesa "jar" (tarro).
Los archivos JAR simplifican la descarga de applets de Java ya que todos
los componentes (archivos, imágenes, sonidos, clases, etc.) son
empaquetados en un archivos simple. Además JAR soporta compresión de
datos.
Existen tres operaciones básicas con este tipo de archivos: ver contenido,
comprimir y descomprimir.
Instrucciones para GNU/Linux:
Ver contenido
$ jar -tvf [Link]
Comprimir
$ jar -cvf [Link] archivo_1 archivo_2 archivo_3 ... archivo_n
Descomprimir
$ jar -xvf [Link]
Un vínculo de descarga a .jar es .jad, y pesa muy poco.