Crear archivo jar en Netbeans con librerías externas

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:

  1. Establecer el proyecto del que quieres obtener el jar como proyecto principal
  2. 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:

  1. 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.
  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.
  3. 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).
  4. 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.