En este post les mostrarĂ© como crear un archivo JAR con librerĂas eternas incluidas. Resulta que para muchos es muy difĂcil crear aplicaciones en Java cuando las mismas requieren el uso de librerĂas externas. A la hora de la compilaciĂłn, el archivo JAR resultante debe estar en una carpeta junto a sus librerĂas. De lo contrario le serĂa imposible ejecutarse. Pero, ¿que tal si eliminamos esta limitante? Esto se puede lograr con los procedimientos que voy a mostrar a continuaciĂłn.
Voy a utilizar como ejemplo el proyecto ArduinoSwitch.
Como se puede observar, las librerĂas RXTX y Arduino están entre las librerĂas utilizadas por este proyecto. Si se compila el cĂłdigo, se obtiene lo siguiente.
Como se puede observar, se genera el archivo ArduinoSwitch.jar junto con la carpeta lib, donde se incluye las librerĂas Arduino y RXTX. Para que el archivo ArduinoSwitch se pueda ejecutar de forma correcta, debe estar acompañado de la carpeta lib.
Ahora voy a mostrar como crear un archivo JAR con librerias externas incluidas en su interior. Esto quiere decir que no será necesaria la carpeta lib para poder ejecutar ArduinoSwitch.
Es necesario dar clic donde dice “files” en la parte de la izquierda. Se despliega el arbol con las carpetas y se busca el archivo build.xml.
Hay que agregar unas instrucciones al cĂłdigo del build.xml. Dichas instrucciones son las siguientes:
En la siguiente imagen se muestra donde se debe colocar el código, y algunas pequeñas modificaciones:
Donde dice JAR_comprimido se escoge el nombre que se desea que tenga el JAR. Si se compila el proyecto, en la carpeta dist se obtendrá lo siguiente:
Se generan dos archivos, ArduinoSwitch, que es basura. Este archivo no se puede ejecutar porque no cuenta con la carpeta lib. Al archivo JAR_comprimido es el que es válido. Se puede notar que es más pesado (69 KB) que el otro archivo (11 KB), debido a que posee en su interior las librerĂas Arduino y RXTX.
Este archivo puede ejecutarse desde cualquier directorio. Es totalmente independiente de cualquier carpeta donde se contenga las librerĂas utilizadas por el proyecto.
Eso es todo por ahora.
Espero que la informaciĂłn suministrada sea de su agrado.
Saludos.