Java es un lenguaje de programación muy extendido, especialmente por ser multiplataforma. Además, con la llegada de Android, se ha vuelto mucho más atractivo para los desarrolladores, ya que las apps de este sistema se basan en Java. Por eso, en este tutorial te mostraré como trabajar con archivos .jar (JAR son las siglas de Java ARchive).
En este tipo de paquete se puede usar código fuente Java y también otros metadatos y recursos asociados, como podrían ser imágenes, texto, etc. Todo para poderlo ejecutar en cualquier plataforma compatible. Por ejemplo, un mismo ejecutable .jar puede funcionar en Linux, Windows, macOS, e incluso en algunos sistemas operativos móviles.
Esa portabilidad es fantástica para distribuir pequeñas aplicaciones que quieres que funcionen en la mayoría de los sistemas operativos. Por eso, si estás aprendiendo lenguaje de programación Java y quieres comenzar a crear estos .jar en tu distro Linux, aquí podrás encontrar la forma de gestionarlos.
¿Qué necesito?
Antes de comenzar a crear este tipo de archivos .jar, deberías reunir una serie de requisitos para poder continuar:
- Disponer de conocimientos básicos del lenguaje de programación Java para poder modificar el código fuente a tu antojo según necesites.
- Tener instalado en tu distribución Linux la máquina virtual Java (puedes descargarla desde aquí), o la alternativa abierta OpenJDK. Puede que tu distro ya tenga esto instalado y no sea necesario…
Por cierto, tanto si tienes OpenJDK como si tienes la de Oracle, el procedimiento y comandos serán exactamente los mismos, ya que el comando java sirve para ambos…
Pasos para crear y ejecutar el archivo Jar en Linux
En Linux existen multitud de paquetes para software, desde los clásicos .rpm y .deb, pasando por otros algo menos frecuentes como los .bin o los .run, los scripts .sh, los nuevos paquetes universales AppImage, Snap, Flatpak, así como los .jar que nos interesan para este tutorial…
Para poder trabajar con estos últimos, sería tan fácil como seguir estos sencillos pasos:
Crear el paquete .jar en Linux
Lo primero que hay que hacer es crear el .jar en Linux. Para ello, sería bueno que tuvieses conocimientos de Java para poder modificar el código fuente a tu gusto. En este caso, usaré un típico Hola Mundo! para la prueba, pero puedes usar el código que necesites, enlazar con otros archivos, etc.
Puedes usar el editor de texto que quieras, tanto en modo gráfico como en modo texto. Eso es a tu elección. Pero valdría usar Gedit, nano, Geany, etc. Para poner un ejemplo:
nano hola.java
Esto crea el fichero llamado así y abre el editor nano para poder comenzar a introducir el código de tu programa Java. Es importante que tenga esa extensión, aunque el nombre puede cambiar.
Por ejemplo, podrías introducir este código Java, que lo único que hará es mostrar un mensaje Hola Mundo! en pantalla:
public class HolaMundo {
public static void main(String[] args) {
System.out.println("Hola Mundo!");
}
}
Ahora, guarda el contenido tal cual. En este caso, al usar nano, puedes hacerlo con Ctrl+O y luego Ctrl+X para salir del editor. Una vez hecho eso, ya tendrás el fichero fuente.
Antes de seguir, también deberías generar un fichero de manifiesto, de lo contrario dará error al intentar ejecutar. Para ello, no hace falta que completes el manifiesto completo, pero al menos, crea un fichero llamado MANIFEST.MF con tu editor favorito, como has hecho con el anterior:
//Crear el archivo
nano MANIFEST.MF
//El contenido debe ser el siguiente
Main-Class: HolaMundo
Pero esto no funcionaría, ya que hay que pasar ese .java a un .jar para que se pueda ejecutar. Para ello, hay que compilar, pasando este código a un tipo de bytecode reconocible por la máquina Java:
javac -d . hola.java
jar cvmf MANIFEST.MF hola.jar hola.class
Ahora, deberías tener en ese mismo directorio de trabajo un .jar listo.
Ejecutar .jar en Linux
Ahora, lo único que falta es ver si todo ha ido correctamente y ejecutar el .jar generado. La orden para poder ejecutar el archivo Java es:
java -jar hola.jar
El resultado debería ser un mensaje Hola Mundo! en pantalla…