Foro de elhacker.net

Programación => Java => Mensaje iniciado por: danielo- en 13 Diciembre 2009, 17:10 pm



Título: librerias dentro de un jar
Publicado por: danielo- en 13 Diciembre 2009, 17:10 pm
Hola a todos, necesito de ayuda.
Estoy por entregar un proyecto escolar, y yo muy confiado crei saber como agregar librerias dentro del jar pero a la hora de la hora no me sale, y no entiendo porque, tengo 3 paquetes el jmf, poi y pdfrender, los desempaquete y los empaquete en un solo jar y lo meti en una carpeta llamada lib, en el manifest escribi Class-Path: lib/paquetes.jar  y no me funciona! no entendo porque! necesito de su ayuda! deberia funcionar, ya lo abia hecho antes y funciono.. me marca un error con el paquete del jmf

Espero sus aportes...  ;-)


Título: Re: librerias dentro de un jar
Publicado por: sapito169 en 13 Diciembre 2009, 20:49 pm
lol no puedes meter un jar dentro de otro jar
pon la carpeta lib al costado del jary apunat el manifest a cada uno de los jar uno por uno

lib/jmf


Título: Re: librerias dentro de un jar
Publicado por: 1mpuls0 en 13 Diciembre 2009, 21:03 pm
lol no puedes meter un jar dentro de otro jar


Si puede  :xD pero no debe, no serviria de nada, lo que puedes hacer tambien es descomprimir el jar y guardar cada una de las carpetas dentro del jar que vas a crear.

p.e.
crearJar.bat
Código
  1. echo off
  2. del *.class
  3. javac Main.java
  4. jar cvfm Aplicacion.jar Manifest.mf *.class images fonts sounds org *.license resource contrib META-INF *.properties common jxl
  5. del *.class
  6. @pause
  7.  

o para ahorrarte escribir cada uno de lo que vayas a dejar dentro del jar

Código
  1. echo off
  2. del *.class
  3. javac Main.java
  4. jar cvfm Aplicacion.jar Manifest.mf *.*
  5. del *.class
  6. @pause
  7.  

y en tu manifesto escribes algo asi

Manifest.mf
Código:
Manifest-Version: 1.0
Created-By: 1mpuls0
Main-Class: Main


o si no quieres descomprimir el jar puedes hacer como dice sapito

crearJar.bat
Código
  1. echo off
  2. del *.class
  3. javac Main.java
  4. jar cvfm Aplicacion.jar Manifest.mf *.class images fonts sounds etc
  5. del *.class
  6. @pause
  7.  

y en tu manifest (para este caso) tendrias que tener esto
Código:
Manifest-Version: 1.0
Created-By: 1mpuls0
Main-Class: Main
Class-Path: substance.jar poi.jar jxl.jar etc.jar

Pero debes de tener tus variables de entorno para java(Lo digo por los .bat)


Saludos


Título: Re: librerias dentro de un jar
Publicado por: danielo- en 14 Diciembre 2009, 00:59 am
amm... lo e estado intentando sacandolo del jar, metiendolo dentro de un jar, individualmente.. y logre que me resulte pero solo en mi computadora, cuando lo paso a otra no funciona... alguna idea?? (obviiamente los kite de mi classpath para asegurarme de que no este tomando los jar de mi compu)..
y... no se que tan tonto o bien sea la forma en que lo hice, y si esta mal, haganmelo saber, aqui les dejo los pasos de lo que hago:

-creo el jar vacio
-una vez ya hecho el jar, lo abro con winrar para poder meter lo que necesito
-le meto todas las clases que cree
-meto una carpeta con los paquetes
-abro el manifest
- y manualmente le configuro la clase main y el classpath
...m :-X... creo q ese es el problema, hacerlo manualmente, hay alguna forma en particular de hacer esto? es mediante comandos?
...jejeje :o  no sean crueles conmigo... de alguna forma tengo que aprender :xD


Título: Re: librerias dentro de un jar
Publicado por: 1mpuls0 en 14 Diciembre 2009, 01:31 am
-creo el jar vacio

 :xD

No sabes manejar bat?

el codigo qe te pase hace todo eso  :¬¬, no necesitas andar metiendo ni sacando nada. Intentale asi como te digo, que editor usas, JCreator, Eclipse, Netbeans??, algunos te ahorran todo ese trabajo.

Te recomiendo que hagas lo siguiente, antes qeu nada, leelo completo, entiendelo y ahora si, sigue los pasos

1. A tus librerias que vayas a necesitar para que tu programa funcione dale click derecho y extraer aqui, te quedaran muchas carpetas dependiendo de tu libreria, si descomprimes mas de una libreria tal vez te pregunte qeu quieres reeemplazar el manifest (aceptas)

2. Abres un bloc de notas y escribe este codigo qeu te di.

Código:
echo off
del *.class
javac Main.java
jar cvfm Aplicacion.jar Manifest.mf *.*
del *.class
@pause

Lo unico que vas a cambiar es donde dice javac Main.java por javac elNombreDeTuClasePrincipal.java y en donde dice jar cvfm Aplicacion.jar Manifest.mf *.* por jar cvfm nombreDelJar.jar Manifest.mf *.*, despues le das en guardar como, y donde dice tipo te aparece por default archivo de texto, cambialo a todos los archivos, ya nada mas escribes el nombre a tu bat por ejemeplo crearJar.bat, que no se te olvide la extension.

3. En tu manifest solo escribe esto
Código:
Manifest-Version: 1.0
Created-By: 1mpuls0
Main-Class: Main

en donde Main es la clase donde se encuentra tu metodo main (o tu clase principal)


4. Lo unico que te toca hacer antes de todo esto es tener tus variables de entorno.


Saludos, perdon por la mala ortografia  :xD estoy un poco ocupado


Título: Re: librerias dentro de un jar
Publicado por: Ragnarok en 26 Diciembre 2009, 19:04 pm
Se pueden meter jars dentro de otros jars. Pero no queréis, ya os lo digo yo.

Jars en la carpeta lib y un classpath correcto, eso es todo lo que hace falta. Algunos IDEs te lo hacen automático.