Nuevas NORMAS para el foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse. - Mayo 16, 2008, 06:03:39
Boton Buscar
Inicio Ayuda Calendario Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programacion para webmasters  |  Java - Java Script  |  Tema: Hacer ficheros jar 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Hacer ficheros jar  (Leído 144 veces)
[p3ll3]
Colaborador
*****
Desconectado Desconectado

Mensajes: 451


Read The Fucking Manual && STFU xDDD


Ver Perfil WWW
« en: Diciembre 22, 2007, 08:01:55 »

QUÉ SON LOS FICHEROS JAR

Cuando tenemos un programa grande, con varios paquetes y clases, ya sabemos cómo organizarlo, compilarlo y ejecutarlo. Sin embargo, para pasárselo a los amiguetes o instalarlo en otro ordenador es un poco rollo. Tenemos que llevarnos directorios enteros, con los ficheros que hay dentro y demás.

Lo ideal es meter todos estos ficheros y directorios en un único fichero comprimido. Java, con su comando jar, que está en el directorio bin de donde tengamos java,  nos permite hacer esto. Empaqueta todo lo que le digamos (directorios, clases, ficheros de imagen o lo que queramos) en un único fichero de extensión .jar. Un fichero de extensión .jar es similar a los .zip de Winzip, a los .rar de Winrar o a los ficheros .tar del tar de unix. De hecho, con Winzip o Winrar se puede ver y desempaquetar el contenido de un fichero .jar

Java nos da además otra opción, podemos ejecutar las clases del fichero .jar sin tener que desempaquetarlo. Símplemente podemos darle a nuestro amiguete el fichero .jar con todo dentro y ya está listo para ejecutar.

Vamos a ver cómo hacer todo esto.

    * Cómo crear un fichero jar.
    * Ver qué hay dentro de un jar.
    * Modificar el contenido de un fichero jar.
    * Ejecutar un fichero jar.
    * El fichero de manifiesto.

CÓMO CREAR UN FICHERO JAR

Para crear un fichero jar, en primer lugar tenemos que tener todo ya perfectamente preparado y compilado, funcionando.

Si las clases de nuestro programa no pertenecen a paquetes, simplemente debemos meter las clases en el fichero .jar Para ello, vamos al directorio donde estén los ficheros .class y ejecutamos el siguiente comando

Código:
$ cd directorio_con_los_class
$ jar -cf fichero.jar fichero1.class fichero2.class fichero3.class

La opción "c" indica que queremos crear un fichero.jar nuevo. Si ya existía, se machacará, así que hay que tener cuidado. La opción "f" sirve para indicar el nombre del fichero, que va inmediatamente detrás. En nuestro caso, fichero.jar. Finalmente se pone una lista de ficheros .class (o de cualquier otro tipo) que queramos meter en nuestro jar. Se pueden usar comodines, estilo *.class para meter todos los .class de ese directorio.

Si las clases de nuestro porograma pertenecen a paquetes, debemos meter en nuestro jar la estructura de directorios equivalente a los paquetes entera. Para ello, nos vamos al directorio padre de donde empiece nuestra estructura de paquetes. En el caso de nuestro HolaMundo con paquete, debemo meter el directorio prueba completo. El comando a ejecutar es este.

Código:
$ cd directorio_padre_de_prueba
$ jar -cf fichero.jar prueba

Las opciones son las mismas, pero al final en vez de las clases, hemos puesto el nombre del directorio. Esto meterá dentro del jar el directorio y todo lo que hay debajo.

Otra opción sería meter los .class, pero indicando el camino relativo para llegar e ellos

Código:
$ cd directorio_padre_de_prueba
$ jar -cf fichero.jar prueba/HolaMundo.class

En windows la barra va al revés...


VER QUÉ HAY DENTRO DE UN JAR

Para comprobar si nuestro jar está bien hecho, podemos ver su contenido. El comando es este

Código:
$ jar tf fichero.jar

La opción "t" indica que queremos un listado del fichero.jar. La opción "f" es igual que antes. Esto nos dará un listado de los class (y demás ficheros) que hay dentro, indicando en que directorio están. Deberíamos comprobar en ese listado que están todas las clases que necesitamos y la estructura de directorios concuerda con la de paquetes.

MODIFICAR UN JAR

Para cambiar un fichero dentro de un jar o añadirle uno nuevo, la opción del comando jar es "u". Si el fichero existe dentro del jar, lo reemplaza. Si no existe, lo añade.

Por ejemplo, si hacemos un cambio en nuestro HolaMundo.class con paquete y lo recompilamos, podemos reemplazarlo así en el jar
Código:
$ jar uf fichero.jar prueba/HolaMundo.class

CÓMO EJECUTAR UN JAR

Para ejecutar un jar, símplemente debemos poner el fichero jar en el CLASSPATH. Ojo, hay que poner el fichero.jar, NO el directorio en el que está el fichero.jar. Este suele ser un error habitual al empezar, pensar que basta con poner el directorio donde está el jar. Para los .class, basta poner el directorio, para los .jar hay que poner el fichero.jar

El path para indicar la ubicación del fichero puede ser absoluto o relativo al directorio en el que ejecutemos el comando java. El comando para ejecutar una clase dentro de un jar, en nuestro caso del HolaMundo con paquete, suponiendo que estamos en el directorio en el que está el fichero.jar, sería este

Código:
$ java -cp ./fichero.jar prueba.HolaMundo
Hola Mundo

Simplemente, en la opción -cp del CLASSPATH hemos puesto el fichero.jar con su PATH relativo. Detrás hemos puesto el nombre de la clase, completo, con su paquete deltante. Nuevamente, en windows la barra de directorio va al revés.

EL FICHERO DE MANIFIESTO


Ejecutar así tiene una pega. Además de acordarse de poner la opción -cp, hay que saber el nombre de la clase que contiene el método main(). Además, si nuestro programa es muy grande, tendremos varios jar, tanto nuestros como otros que nos bajemos de internet o de donde sea. La opción -cp también puede ser pesadita de poner en ocasiones.

Una opción rápida que a todos se nos ocurre es crearse  un pequeño fichero de script/comandos en el que se ponga esta orden. Puede ser un fichero .bat de windows o un script de unix. Este fichero debe acompañar al fichero.jar y suponiendo que estén en el mismo directorio, su contenido puede ser este

java -cp ./fichero.jar prueba.HolaMundo

Para ejecutarlo, se ejecuta como un fichero normal de comandos/script. Si el fichero se llama ejecuta.sh o ejecuta.bat, según sea unix o windows:

Código:
$ ./ejecuta.sh
Hola Mundo
C:\> ejecuta.bat
Hola Mundo

Sin embargo, java nos ofrece otra posibilidad de forma que no tengamos que hacer este fichero. Simplemente, en un fichero de texto metemos una línea en la que se ponga cual es la clase principal. Este fichero se conoce como fichero de manifiesto y su contenido puede ser este

Main-Class: prueba.HolaMundo

Cuando contruimos el jar, debemos incluir este fichero de una forma especial. Por ejemplo, si el fichero lo llamamos manifiesto.txt y lo ponemos en el directorio donde vamos a construir el jar, el comando para hacerlo sería este

Código:
$ jar cmf manifiesto.txt fichero.jar prueba/HolaMundo.class

En windows, nuevamente, la barra al revés. Al comando de crear jar le hemos añadido la opción "m" para indicar que vamos a añadir un fichero de manifiesto. Hemos añadido además el fichero manifiesto.txt. El orden de las opciones "mf" es importante. El fichero de manifiesto y el fichero.jar se esperan en el mismo orden que pongamos las opciones. En el ejemplo, como hemos puesto primero la ocpión "m", debemos poner manifiesto.txt delante de fichero.jar. El resto de ficheros son los que queremos empaquetar.

Una vez construido, se ejecuta fácilmente. Basta con poner

Código:
$ java -jar fichero.jar

La opción "-jar" indica que se va a ejecutar el fichero.jar que se ponga a continuación haciendo caso de su fichero de manifiesto. Como este fichero de manfiesto dice que la clase principal es prueba.HolaMundo, será esta la que se ejecute.

De esta forma nos basta con entregar el jar y listo. El comando para arrancarlo es sencillo.

Es más, en windows, si lo configuramos para que los ficheros jar se abran con java y la opción -jar, bastará con hacer doble click sobre ellos para que se ejecuten.


Saludos.................................... Cool
[p3ll3]



Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion
Fuente
En línea


Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programacion para webmasters  |  Java - Java Script  |  Tema: Hacer ficheros jar « anterior próximo »
Ir a:  
Novedades, Dudas, Comentarios Y Sugerencias, Top 100, Off-Topic, Revista E-Zine, Revista E-Zine, Sistemas operativos libres. , HacK GeneraL, Phreaking, Bug y Exploits, Networking & Wireless, Overclocking, Refrigeracion y demas, Hardware, Electronica Y Robotica, Hack para newbies, Todo Messenger, Troyanos y virus, Programacion, Programacion para webmasters, Software, Cracks & Serialz, P2p, Bittorrent, Elinks, Diseño Grafico, Juegos PC, Mp3, Multimedia, Peliculas Divx, Juegos, Humor y Adultos. (Diversion), Paginas Webs Recomendadas, Videos,


Zona-Musical Juegos online Juego Gratis10 Solucion Hosting Videos De Musica 1juegogratis Dragonjar
Noticias
 Juegos De Coche juegos gratis online juegos Los Foros De Sexe Gratuit Sexo Duro Tierra Messenger Trucos
Ranking-Hits
Powered by SMF 1.1.5 | SMF © 2006-2007, Simple Machines LLC