Como crear un “Fat Jar” en Netbeans.

Spread the love

Como muchos sabrán, al momento de crear un proyecto Java en Netbeans y agregarle librerías o .jar externos, se nos crea una carpeta “lib” junto al .jar de nuestra aplicación y para poder ejecutar exitosamente la aplicación, se exige que esta carpeta esté en la misma ruta del .jar

Esas veces, muchos de nosotros habremos querido meter todas esas librerias en un solo jar. ¿Como podemos hacerlo?. Para ello vamos a seguir los siguientes pasos:

Hacemos click en la pestaña “Archivos” de la franja izquierda.

Una vez esté seleccionada, buscamos el archivo “build.xml”.

Bajamos hasta el final y justo antes de cerrar la etiqueta “</project>” pegamos el siguiente código:

<target name="package-for-store" depends="jar">
<!-- Change the value of this property to be the name of your JAR,
minus the .jar extension. It should not have spaces.
<property name="store.jar.name" value="MyJarName"/>
-->
<property name="store.jar.name" value="SCHEDULAR"/>
<!-- don't edit below this line -->
<property name="store.dir" value="store"/>
<property name="store.jar" value="${store.dir}/${store.jar.name}.jar"/>
<echo message="Packaging ${application.title} into a single JAR at ${store.jar}"/>
<delete dir="${store.dir}"/>
<mkdir dir="${store.dir}"/>
<jar destfile="${store.dir}/temp_final.jar" filesetmanifest="skip">
<zipgroupfileset dir="dist" includes="*.jar"/>
<zipgroupfileset dir="dist/lib" includes="*.jar"/>
<manifest>
<attribute name="Main-Class" value="${main.class}"/>
</manifest>
</jar>
<zip destfile="${store.jar}">
<zipfileset src="${store.dir}/temp_final.jar"
excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA"/>
</zip>
<delete file="${store.dir}/temp_final.jar"/>
</target>

Guardamos los cambios y hacemos click con el boton derecho del mouse sobre el mismo archivo “build.xml”, seleccionando las opciones que se muestran a continuación:

Click derecho -> Run Target -> Other Targets -> package-for-store

una vez hecho esto, se inicia la generación de nuestro “Jar Gordo” o fat jar con todas las librerías incluidas, con lo que la distribución de nuestra aplicación va a ser muy sencilla.

Espero les haya sido de ayuda.

Saludos

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.