Combinar todas las librerías externas en un sólo JAR en Netbeans
Al compilar con el script ant que trae integrado NetBeans, obtendremos un JAR con la aplicación y una carpeta "lib" con las librerías externas para hacerla funcionar. De cara a distribuir la aplicación esto no es lo más interesante, ya que si es una aplicación de escritorio será más conveniente combinarlo todo en un sólo archivo, incluídos binarios y librerías externas.
Una posibilidad para generar el archivo que incluya todo sería hacerlo a mano (renombrando el jar a .zip y editándolo, por ejemplo), aunque si se va a hacer varias veces es más cómodo hacerlo desde el propio IDE, integrado en el proceso de compilación de Netbeans. Para ello, editaremos el archivo build.xml localizado en la carpeta raíz del proyecto, y añadimos este texto antes de <project>:
<target name="-post-jar">
<jar jarfile="${dist.jar}" update="true">
<zipfileset src="${dist.jar}" includes="**/*.class" />
<zipfileset src="lib/libreria1.jar" excludes="META-INF/*"/>
<zipfileset src="lib/libreria2.jar" excludes="META-INF/*"/>
<manifest>
<attribute name="Main-Class" value="com.ejemplo.ClasePrincipal"/>
</manifest>
</jar>
</target> |
Debemos añadir cada una de las librerías a incluir en el JAR con una línea zipfileset. Este añadido al script permitirá que NetBeans genere un archivo .JAR para el proyecto, que incluye tanto nuestro código como las dependencias, al utilizar la opción "Clean&Compile" del IDE.