Crear jar con librerías incluidas sin preocuparse del classpath

Me he dado cuenta de que en la Universidad no se nos enseña a distribuir las aplicaciones Java que tenemos. Vamos, que si quisiéramos pasarle la aplicación que acabamos de programar a un amigo, no tendríamos ni idea de como hacerlo sin que tuviera que compilársela el solito… lo cual es poco práctico y algo surrealista.

Hay numerosas formas de distribuir aplicaciones Java. Personalmente prefiero distribuir un único fichero que no necesite instalación, como si de una aplicación de MacOSX se tratase. Una de las formas más cómodas de hacerlo, es usando el plug-in «Fat Jar» de Eclipse.

Fat Jar incluye en un único archivo «jar» todas nuestras clases y librerías que usemos. La ventaja es que el usuario únicamente tendrá que hacer doble clic sobre el .jar. Nada de configuraciones de classpath, instalaciones ni dependencias que ningún usuario medio sabe resolver.

Para instalarlo «Help -> Software updates -> Find and Install» y luego «Search for new features to install» hacemos clic en «New remote site» e introducimos la dirección «http://kurucz-grafika.de/fatjar/» Tras eso, simplemente marcamos Fat Jar, seguimos los pasos y reiniciamos eclipse.

Para generar el Jar de un proyecto hacemos clic derecho sobre él y «Build Fat Jar».

Por Carballude

Me llamo Pablo Carballude González, soy graduado en computación con master en HCI y Seguridad Informática. Actualmente trabajo para Amazon en Seattle como Software Developer Engineer. Soy de esas personas que no saben si los textos autobiográficos deben ser en primera o tercera persona. Lo intenté en segunda, pero no le entendí nada :P

26 comentarios

  1. muchas gracias muy buen aporte andaba buscando esto enserio
    mil gracias… me ha sido de gran utilidad sigue con este sitio que es una verdadera joya

  2. He instalado el fat-jar, pero no me funciona el jar en otro ordenador. Tengo mi proyecto con las carpetas src y bin. Dentro de src esta todo mi proyecton en carpetas, una de ellas contiene imagenes. Hago el jar y éste no me muestra la carpeta src, por lo que no me muestra las imagenes (son iconos de la aplicacion). Ni poniendo la carpeta imagenes fuera de src. Como lo puedo solucionar ? Muchas gracias.

  3. alejandro :

    He instalado el fat-jar, pero no me funciona el jar en otro ordenador. Tengo mi proyecto con las carpetas src y bin. Dentro de src esta todo mi proyecton en carpetas, una de ellas contiene imagenes. Hago el jar y éste no me muestra la carpeta src, por lo que no me muestra las imagenes (son iconos de la aplicacion). Ni poniendo la carpeta imagenes fuera de src. Como lo puedo solucionar ? Muchas gracias.

    Lo más probable es que estés poniendo mal la ruta a la imagen. En http://www.rgagnon.com/javadetails/java-0240.html explican como hacerlo.

  4. Gracias por la información, venía intentando crear el jar mediante la opcion Export->Java->Jar File de Eclipse, pero sin buenos resultados, recien lo he logrado debido a tu aporte !

  5. no inventes! pinche post, te la rajaste la verdad
    llevaba 2 dias con esta jalada y en 5 minutos me quedo. Gracias.

  6. ivan No tengo ningún sitio dedicado a java… lo más parecido es que te subscribas al RSS de ese blog o a mi cuenta de twitter.

    Luz Me alegro que te sirviera :)

  7. Pues a mí no me funciona, no sé que hago mal. He descargado el plug-in y despues he hecho lo que dices y se crea el archivo jar, pero al ejecutarlo, no hace nada. No me da ningun error pero no hace nada.
    Lo he intentado hacer con la opción export y sí se ejecuta, pero no se muestran las imágenes que tengo, no sé si es que no las encuentra o que.

  8. A mi tampoco me funciona me sale el mismo erro que al exportarlo o crearlo desde linea de comandos, el error es que no encuentra el main, alguna ayuda¡?

  9. Pero cuando creo el Jar y mi Frame principal tiene una imagen, esta no se muestra al ejecutar el jar en otra PC? Que deberia yo de hacer…

  10. Tengo una aplicación de escritorio (Java-Swing). Cuando creo el cliente con fat-jar e intento abrir la aplicacion no se muetra la interfaz, y aveces se muestra pero por parte. Ayuda con eso.

  11. buen dia guaooo es impresionante quisiera aprender mas de usted … usted es un genio programando gracias x el aporte me salvastes la vida para mi proyecto ..!

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *