Cómo crear y ejecutar un archivo .Jar en una terminal Linux


Un JAR (Java ARchive) es un formato de archivo independiente de la plataforma que se utiliza para agregar muchos archivos de clase Java y metadatos y recursos asociados, como texto, imágenes, etc., en un solo archivo para su distribución.

Permite que los tiempos de ejecución de Java implementen de manera eficiente una aplicación completa en un archivo de almacenamiento y proporciona muchos beneficios, como seguridad, sus elementos pueden estar comprimidos, acortar los tiempos de descarga, permite el sellado y control de versiones de paquetes, admite la portabilidad. También es compatible con el embalaje para extensiones.

En este artículo, mostraremos cómo crear una aplicación Java simple y empaquetarla en un archivo JAR, y demostraremos cómo ejecutar un archivo .jar desde la terminal de Linux.

Para hacer esto, debe tener instalada la herramienta de línea de comandos de Java para iniciar una aplicación Java, y el indicador -jar para ejecutar un programa encapsulado en un archivo JAR. Cuando se utiliza esta marca, el archivo JAR especificado es el origen de todas las clases de usuario y se ignoran otras configuraciones de ruta de clases.

Cómo crear un archivo JAR en Linux

1. Primero comience escribiendo una clase Java simple con un método principal para una aplicación llamada TecmintApp, con fines de demostración.

$ vim TecmintApp.java

Copie y pegue el siguiente código en el archivo TecmintApp.java.

public class TecmintApp {
	public static void main(String[] args){
		System.out.println(" Just executed TecmintApp! ");
	}
}

Guarde el archivo y ciérrelo.

2. Luego, necesitamos compilar y empaquetar la clase en un archivo JAR usando las utilidades javac y jar como se muestra.

$ javac -d . TecmintApp.java
$ ls
$ jar cvf tecmintapp.jar TecmintApp.class
$ ls

3. Una vez creado tecmintapp.jar, ahora puede ejecutar el archivo usando el comando java como se muestra.

$ java -jar tecmintapp.jar

no main manifest attribute, in tecmintapp.jar

Desde el resultado del comando anterior, encontramos un error. La JVM (Java Virtual Machine) no pudo encontrar nuestro atributo de manifiesto principal, por lo que no pudo ubicar la clase principal que contiene el método principal (public static void main (String [] args)).

El archivo JAR debe tener un manifiesto que contenga una línea con el formato Main-Class: classname que defina la clase con el método principal que sirve como punto de partida de nuestra aplicación.

4. Para corregir el error anterior, necesitaremos actualizar el archivo JAR para incluir un atributo de manifiesto junto con nuestro código. Creemos un archivo MANIFEST.MF.

$ vim MANIFEST.MF

Copie y pegue la siguiente línea en el archivo MANIFEST.MF.

Main-Class:  TecmintApp

Guarde el archivo y agreguemos el archivo MANIFEST.MF a nuestro tecmintapp.jar usando el siguiente comando.

$ jar cvmf MANIFEST.MF tecmintapp.jar TecmintApp.class

5. Finalmente, cuando ejecutamos el archivo JAR nuevamente, debería producir el resultado esperado como se muestra en la salida.

$ java -jar tecmintapp.jar

Just executed TecmintApp!

Para obtener más información, consulte las páginas de manual de los comandos java, javac y jar.

$ man java
$ man javac
$ man jar

Referencia: empaquetado de programas en archivos JAR.

¡Eso es todo! En este breve artículo, explicamos cómo crear una aplicación Java simple y empaquetarla en un archivo JAR, y demostramos cómo ejecutar un archivo .jar desde la terminal. Si tiene alguna pregunta o ideas complementarias para compartir, utilice el formulario de comentarios a continuación.