Crear un archivo distribuible jar para poder usar las aplicaciones que haces en java no tiene mucha ciencia y sino quieres meterle nada especial y simplemente quieres que se ejecute el programita en cuestión con netbeans tienes que hacer lo siguiente:
- Establecer el proyecto del que quieres obtener el jar como proyecto principal
- Ir al menú Run y elegir Clean and Build Main Proyect o pulsar Mayúsculas+F11
Otra opción es haciendo click derecho en el proyecto elegido elegir Clean and Build y se obtiene lo mismo. Lo hagas de la forma que lo hagas la primera vez hay que elegir Clean and Build y luego si quieres puedes usar Build o Build Main Proyect (ó F11).
El .jar resultante esta en la carpeta dist dentro del proyecto de netbeans.
Pero si has usado alguna librería externa netbeans no te la incluye en el jar sino que la deja mete en la carpeta lib (que también esta dentro de la carpeta dist). Para incluir la librería externa en el jar tienes que hacer lo siguiente:
- Descomprime el jar (Si usas winrar elige extraer aquí) y tendrás la carpeta lib y las dos que había dentro del jar META-INF y otra que tendrá el nombre de tu aplicación.
- Abre el archivo MANIFEST.MF que esta en la carpeta META-INF y modifica la ruta en la que buscará las librerías. Por ejemplo si tenemos Class-Path: lib/log4j-1.2.16.jar para que funcione al incluir la carpeta lib dentro del .jar la ruta deberá de ser Class-Path: ./lib/log4j-1.2.16.jar.
- Selecciona las 3 carpetas, botón derecho Añadir al archivo… le pones el nombre de tu aplicación (si quieres) eliges ZIP como formato del archivo y le das a aceptar (Si no usas winrar comprímelo en un ZIP como se haga teniendo en cuenta que lo que necesitas es comprimir las 3 carpetas sin que estén dentro de otra porque sino no funcionará el jar).
- Ahora solo queda cambiar la extensión del archivo resultante de .zip a .jar y ya tienes tu jar listo y con tus librerías externas incluidas.
Así de rápido y sencillo es incluir librerías (imágenes, los .java o lo que quieras) en el jar del proyecto usando NetBeans.
Buenas, he intentado hacerlo tal y como dices, comprimiendo la carpeta lib dentro del .jar, pero no me funciona.
Mi caso es que necesito incluir el driver JDBC para PostgreSQL. Imagino que debería funcionar igualmente, sea cual sea la librería.
Un saludo y gracias igualmente.
Lo acabo de comprobar y se me habia olvidado poner que hay que cambiar la ruta de las librerias en el archivo META-INF, si sigues la estructura que comentaba en el tendras que modificar el class-Path por ejemplo en lugar de Class-Path: lib/log4j-1.2.16.jar como el .jar esta dentro de una carpeta tendría que ser Class-Path: ./lib/log4j-1.2.16.jar.
esa maricada no funciona ni siquiera asi, sigue igual que cuando estaba el jar separado de las librerias
hola no entendi bien tu paso 2
Abre el archivo MANIFEST.MF que esta en la carpeta META-INF y modifica la ruta en la que buscará las librerías. Por ejemplo si tenemos Class-Path: lib/log4j-1.2.16.jar para que funcione al incluir la carpeta lib dentro del .jar la ruta deberá de ser Class-Path: ./lib/log4j-1.2.16.jar.
solo le agregas ./ y . al final si son muchas librerias se hace lo mismo a todas? o solo a la primera? no me a funcionado
Class-Path: ./lib/appframework-1.0.3.jar. lib/swing-worker-1.1.jar lib/be
ansbinding-1.2.1.jar lib/toplink-essentials.jar lib/toplink-essential
s-agent.jar lib/mysql-connector-java-5.1.13-bin.jar lib/jcommon-1.0.1
8.zip lib/jcommon-1.0.17.jar lib/jfreechart-1.0.14-experimental.jar l
ib/jfreechart-1.0.14-swt.jar lib/jfreechart-1.0.14.jar
esas son mis librerias como las agrego? espero tu respuesta
Tienes que hacerlo con todas, porque el ./ es para indicar que busque a partir de la carpeta padre en la que se encuentra el MANIFEST.MF porque si no lo que hace es buscar la carpeta lib dentro de META-INF y como no esta dentro pues te dara error.
Una pregunta… listo hice lo que explicaste, pero ahora no me quiere cargar el frame donde utilizo la libreria PDFRenderer.. a que se debe y como lo puedo resolver
La verdad no se porque por que no te funciona en tu caso concreto. Sin saber mas solo puedo decirte que compruebes que tengas metidas todas las librerias que necesites y que indicas su ruta en el manifest correctamente.
esta visaje solo es otro intento fallido, lo digo por experiencia propia y por los comentarios veo que a bastante gente tampoco le ha funcionado
Creo que te equivocas, porque los dos comentarios que habia aparte del tuyo no funcionaban por poner mal la ruta en la que estan las librerías y poniendolo bien funciona correctamente.
Por otro lado sino te funciona tampoco cuando las librerias estan fuera (si estan en la misma carpeta que el jar) es problema de tu aplicación, revisatelo.
Hice todo lo que dijiste y nada.. me aparece jar corrupto o dañado.
Y otra cosa cuando descomprimo mi .jar no salen 3 carpetas salen las carpetas que son mis paquetes en el proyecto
y si a mi no me aparecen imagenes dentro de unos JOptionPane ?