You are on page 1of 4

Empaquetar una aplicacin para distribuir, desde NetBeans

Uno de los tantos motivos por lo que utilizo NetBeans en lugar de otro IDE, es
que utiliza la Apache Ant para compilar, crear .jar .war .ear, javadoc, etc..
prcticamente para todo, y solo usando un archivo .xml. Y lo mejor es que se
puede personalizar el .xml a nuestro antojo.
En este post se va a explicar cmo empaquetar una aplicacin Swing en un
archivo .zip para ser distribuido a los usuarios finales.

Qu hace NetBeans?
Si al hacer una aplicacin Swing con NetBeans utilizamos diversas bibliotecas
adicionales, el IDE nos puede crear una carpeta lista para distribuir a los
usuarios incluyendo todas los .jars necesarios. Para ello hacemos clic derecho
sobre el cono del proyecto y seleccionamos "Build" (o Clean and Build)

Al hacer esto, el NetBeans compila, y construye la carpeta "dist" para distribuir. Esta carpeta se
encuentra en la misma carpeta del proyecto. Podemos verla en el panel "Files" del NetBeans (Teclas
Ctrl+2)

Ahora bien qu hacemos con ese .jar? En el README.TXT lo explica. Pero NetBeans tambin lo
dice en el panel "Output" (Ctrl+4) despus de construir la aplicacin.

"Para ejecutar esta aplicacin desde la lnea de comandos sin usar Ant, intente:..." y luego dice cul
es el comando que se tiene que hacer.
Si copiamos esa lnea, abrimos la ventana del Smbolo del Sistema, y pegamos esa instruccin para
ejecutarlo, pues nos ejecutar la aplicacin sin problemas. Es ms, se podra copiar a los usuarios
finales este directorio "dist" y decirles que si quieren ejecutarlo hagan esto: abrir una ventana del
Smbolo del Sistema, escribir esa instruccin y listo.........creo que al usuario no le va a gustar hacer
esto Por qu no mejor hacer un programa que al hacer doble clic ya se ejecut? Buena idea.

Creando un .bat
De por s, se puede hacer doble clic al archivo .jar para ejecutar la aplicacin, pero funciona si es
que en el computador del usuario no tiene algn descompresor de archivos asociado a los archivos
.jar. Por ejemplo, si se tiene instalado el WinRAR, al hacer doble clic sobre el archivo .jar, en lugar
de que se ejecute, se abrir el WinRAR y mostrar el contenido del .jar... esto no es lo que
queremos. La mejor manera es crear un archivo .bat que haga la llamada al comando java -jar bla
bla
Esto le podemos decir al NetBeans que lo haga. Para ello, entramos al panel "Files" (Ctrl+2) y
buscamos el archivo build.xml. Este es una extensin al .xml que utiliza el NetBeans para
construir la aplicacin.

Abrimos este archivo, lo revisamos un poco (todo est comentado y hay algunas instrucciones) y
pondremos el tag <target name='-post-jar'/> que nos permitir realizar una tarea despus de
que el NetBeans haya creado el .jar
<target name="-post-jar">
${application.title}.jar</echo>

<echo file="${dist.dir}/run.bat">java -jar


</target>

El tag de la tarea <echo /> crea una salida a la consola, pero con el atributo file le estamos
diciendo que la salida lo haga a un archivo. Para saber cules son los valores de las variables
utilizadas en la construccin del proyecto, podemos revisar el archivo
nbproject/project.properties.

Por ello utilic las variables dist.dir, application.title.


Ahora bien, hagamos un "Build" al proyecto y veamos lo que hizo en la carpeta dist.

Y si vemos el contenido ser justamente lo que hemos pensado. Abrimos una ventana del
explorador de windows, y le damos doble clic al .bat. Listo, usuario satisfecho.
Pero.. sale una ventana negra fea con el comando de ejecucin de la aplicacin. Bueno, esto se
puede solucionar. Podemos reemplazar la instruccin
<echo file="${dist.dir}/run.bat">java -jar ${application.title}.jar</echo>

Por

<echo file="${dist.dir}/run.bat">start javaw -jar $


{application.title}.jar</echo>
El comando de Windows start permite ejecutar una aplicacin y "soltarlo" para que se ejecute
como un proceso ms del Sistema Operativo. Y el comando javaw es un comando adicional al JRE

que permite ejecutar una aplicacin java sin mostrar una ventana del Smbolo del Sistema.
Bien, ahora solo nos bastara con copiar a los usuarios finales el .bat, el .jar y las bibliotecas
adicionales so hubiera. Lo empaquetamos y se lo enviamos.
Hay un poco de flojera para comprimir los archivos? y si me falta uno?

Creando un .zip
El Ant tambin permite comprimir archivos usando la tarea <zip />. Es realmente fcil.
Creamos el siguiente tag despus del <echo />.

<zip destfile="${dist.dir}/${application.title}.zip" basedir="$


{dist.dir}" />

Hagamos "Clean and Build" al proyecto, y listo, ya tenemos nuestro archivo .zip para enviar a los
usuarios finales.

Y les decimos "Estimados bla bla bla, descompriman el achivo .zip para ejecutar la aplicacin".

You might also like