You are on page 1of 12

1

Java Bsico
Empaquetamiento y
despliegue de aplicaciones
Copyright (c) 2004
J os M. Ordax
Copyright
Este documento puede ser distribuido solo bajo los
trminos y condiciones de la Licencia de
Documentacin de javaHispano v1.0 o posterior.
La ltima versin se encuentra en
http://www.javahispano.org/licencias/
2
Empaquetar y desplegar
Y si no conocemos a los usuarios?
Ya tenemos nuestra aplicacin compilada y
funcionando.
Cmo se la damos a los usuarios?
Qu le damos exactamente a los usuarios?
Luego necesitamos una forma de empaquetar los
aplicativos J ava y de desplegarlos a las
plataformas cliente.
Empaquetado
La primera idea es separar el cdigo fuente de los
bytecode.
El cdigo fuente no es til para el usuario final, y
adems, ocupa espacio aumentando el tamao
del aplicativo.
Existen dos tcnicas para realizar esta separacin:
Manual cada vez que queramos empaquetar
(desaconsejada).
Una buena estructura de directorios y la opcin d del
compilador.
3
Estructura de directorios
Existen mltiples posibilidades a la hora de
organizar los directorios. Esta es una sugerencia:
Un primer directorio raz.
Por ejemplo c:\trabajo
Un directorio para el cdigo fuente.
Por ejemplo c:\trabajo\src
Un directorio para los bytecode.
Por ejemplo c:\trabajo\bin
En el directorio src iremos creando todos los
paquetes y cdigo fuente (*.java).
La opcin d de javac
Si compilamos tal cual el cdigo, los bytecode se
crearan en la estructura del cdigo fuente.
javac d ..\bin *.java
Para evitar esto, existe la opcin d con la que
indicaremos el directorio donde queremos que nos
genere el bytecode (*.class).
Es muy importante que el directorio de los fuentes
(c:\trabajo\src) est en el CLASSPATH para evitar
posibles problemas.
4
La opcin d de javac
Al analizar el contenido del directorio especificado
en la opcin d veremos que no solo crea all los
bytecode, sino que tambin genera la estructura
de directorios correspondiente a los paquetes J ava.
El procedimiento de ejecucin de la aplicacin no
se ve modificado por esta forma de compilacin.
Simplemente habr que seguir teniendo en cuenta
que:
Si hay paquetes, el nombre de la clase incluye el paquete.
Aadir al CLASSPATH el directorio de los bytecode para
evitar problemas (c:\trabajo\bin).
Ejemplo
Estructura inicial:
Desarrollo de los fuentes:
5
Ejemplo
Ajustamos el CLASSPATH:
set CLASSPATH=c:\trabajo\src;c:\trabajo\bin;%CLASSPATH%
Compilamos:
cd c:\trabajo\src
javac d ..\bin edu\upco\einf\Test.java
Ejemplo
Ejecutamos:
java edu.upco.einf.Test
Nota: recuerda que ambos directorios: src y bin fueron
aadidos al CLASSPATH.
6
Empaquetado
Ya tenemos los fuentes separados de los bytecode.
Ahora debemos empaquetar todos los bytecode
para que sea ms fcil el despliegue.
Para ello vamos a usar los ficheros J AR:
J AR (J ava Archive).
Los ficheros J AR estn basados en el formato de
los ficheros ZIP y nos permiten empaquetar todas
las clases en un nico fichero.
Ficheros JAR
Para trabajar con ficheros J AR, el SDK contiene
una herramienta: jar.exe
Si la ejecutamos tal cual, nos muestra todas sus
opciones:
7
Ficheros JAR
Las opciones mas comunes son:
-c: crear un fichero J AR nuevo.
-t: listar el contenido de un fichero J AR.
-x: extraer el contenido de un fichero J AR.
-f: especificar el fichero J AR (en combinacin con las
anteriores opciones).
-m: especificar un fichero manifest.
-v: mostrar informacin del proceso por pantalla.
Ejemplo
Crear el fichero J AR:
Listar el contenido del fichero J AR:
8
Ejecucin
Tanto la J VM como el compilador de J ava saben
buscar clases dentro de los ficheros J AR.
Aadir el fichero J AR al CLASSPATH:
set CLASSPATH=c:\temp\mijar.jar
java edu.upco.einf.Test
Para poder ejecutar aplicaciones en ficheros J AR
tenemos tres opciones:
Aadir el fichero J AR al CLASSPATH en lnea de ejecucin:
java cp c:\temp\mijar.jar edu.upco.einf.Test
Crear un fichero J AR ejecutable.
Fichero JAR ejecutable
Los ficheros J AR contienen un fichero de
descripcin llamado el fichero manifest.
META-INF/MANIFEST.MF
Al listar el contenido del fichero J AR en el ejemplo
pudimos observar la entrada:
Manifest-Version: 1.0
Created-By: 1.4.2_02 (Sun Microsystems Inc.)
Si extraemos el contenido del fichero J AR y
editamos el fichero manifest veremos algo como:
9
Fichero JAR ejecutable
Para que un fichero J AR sea ejecutable
necesitamos aadir la siguiente entrada al fichero
manifest:
Main-Class: nombre_de_clase_principal (Nota: sin .class)
Para aadir dicha lnea al fichero manifest,
crearemos un fichero texto con la lnea y al crear el
fichero J AR utilizaremos la opcin m para
referenciarlo:
Main-Class: edu.upco.einf.Test
jar cvmf manifest.txt mijar.jar *.class
Fichero JAR ejecutable
Para ejecutarlo, utilizaremos la opcin -jar de la
J VM:
En las ltimas versiones de los Sistemas
Operativos: Windows y Mac, se pueden ejecutar
este tipo de fichero J AR directamente pulsando
dos veces sobre el fichero con el ratn.
java jar mijar.jar
Nota: es muy importante aadir un Intro al
final de la lnea Main-Class para que se aada
correctamente.
10
Despliegue
Existen distintos tipos de despliegue, dependiendo
de dnde resida el cdigo:
Local: la aplicacin reside y se ejecuta en la mquina
cliente (usuario final).
Remoto: la aplicacin reside y se ejecuta en una mquina
servidora.
Mixto: la aplicacin reside en una mquina servidora pero
se ejecuta en la mquina cliente. O parte de la aplicacin
reside y se ejecuta en la mquina cliente mientras que
otra parte reside y se ejecuta en la mquina servidora.
Despliegue local
La aplicacin reside y se ejecuta en la mquina
cliente.
Normalmente se distribuye a travs de disco, CD,
FTP, e-Mail, o cualquier otro medio en forma de
uno o varios ficheros J AR.
El usuario final necesita tener instalada la J VM (el
J RE J ava Runtime Environment) para poder
ejecutar cdigo J ava.
11
Despliegue remoto
La aplicacin reside y se ejecuta en la mquina
servidora.
Los clientes son cualquier dispositivo de acceso
a la red: navegador web, mvil WAP, etc.
Para el desarrollo de la aplicacin servidora se
utilizan tecnologas del J 2EE como J ava Servlets
o J ava Server Pages.
Despliegue mixto
Se trata de una solucin intermedia entre el
despliegue local y el despliegue remoto.
Applets J ava: las aplicaciones J ava residen en un servidor
y se ejecutan en un navegador (embebidas en una pgina
HTML) en la mquina cliente.
Programacin distribuida: parte de la aplicacin reside en
la mquina cliente y parte en la mquina servidora y se
comunican mediante tecnologas como: RMI, IIOP, TCP/IP.
J ava Web Start (J WS): las aplicaciones J ava residen en un
servidor pero se descargan en la mquina cliente a travs
de un navegador (normalmente) y ya quedan instaladas
localmente.
12
Bibliografa
Head First J ava
Kathy Sierra y Bert Bates.
OReilly
Learning J ava (2
nd
edition)
Patrick Niemeyer y J onathan Knudsen.
OReilly.
Thinking in J ava (3
rd
edition)
Bruce Eckel.
Prentice Hall.
The J ava tutorial
http://java.sun.com/docs/books/tutorial/

You might also like