Cómo crear un archivo JAR ejecutable con un manifiesto

JavaJavaBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Los Archivos Java (Java Archives, JARs) son una forma popular de empaquetar y distribuir aplicaciones Java. En este tutorial, aprenderás cómo crear un archivo JAR ejecutable con un manifiesto personalizado, que te permite especificar la clase principal y otros metadatos para tu aplicación Java.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("Classes/Objects") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/packages_api("Packages / API") java/FileandIOManagementGroup -.-> java/files("Files") java/FileandIOManagementGroup -.-> java/create_write_files("Create/Write Files") java/FileandIOManagementGroup -.-> java/read_files("Read Files") subgraph Lab Skills java/classes_objects -.-> lab-413987{{"Cómo crear un archivo JAR ejecutable con un manifiesto"}} java/packages_api -.-> lab-413987{{"Cómo crear un archivo JAR ejecutable con un manifiesto"}} java/files -.-> lab-413987{{"Cómo crear un archivo JAR ejecutable con un manifiesto"}} java/create_write_files -.-> lab-413987{{"Cómo crear un archivo JAR ejecutable con un manifiesto"}} java/read_files -.-> lab-413987{{"Cómo crear un archivo JAR ejecutable con un manifiesto"}} end

Comprender los Archivos Java (Java Archives, JARs)

Los Archivos Java (Java Archives, JARs) son un formato de archivo utilizado para empaquetar aplicaciones y bibliotecas Java. Los JARs son esencialmente archivos ZIP que contienen clases Java compiladas, recursos y metadatos. El propósito principal de un archivo JAR es distribuir y desplegar aplicaciones y bibliotecas Java.

¿Qué es un archivo JAR?

Un archivo JAR (Java Archive) es un formato de archivo que se utiliza para agrupar clases Java, recursos y metadatos en un solo archivo. Los archivos JAR se basan en el formato de archivo ZIP, lo que significa que pueden contener archivos y directorios comprimidos. Esto facilita la distribución y el despliegue de aplicaciones y bibliotecas Java, ya que todos los archivos necesarios se encuentran dentro de un solo archivo.

¿Por qué usar archivos JAR?

Hay varios beneficios al usar archivos JAR:

  1. Empaquetado y Distribución: Los archivos JAR facilitan el empaquetado y la distribución de aplicaciones y bibliotecas Java. Todos los archivos necesarios se encuentran dentro de un solo archivo, lo que hace que sea más sencillo distribuir e instalar.
  2. Compresión: Los archivos JAR pueden comprimir el contenido del archivo, reduciendo el tamaño total del archivo y haciéndolo más rápido de descargar e instalar.
  3. Gestión del Classpath: Los archivos JAR se pueden agregar al classpath de una aplicación Java, lo que facilita la gestión de las dependencias y recursos necesarios para la aplicación.
  4. JARs Ejecutables: Los archivos JAR se pueden hacer ejecutables, lo que permite a los usuarios ejecutar la aplicación directamente desde el archivo JAR sin tener que instalar un entorno de tiempo de ejecución Java separado.

Estructura de un archivo JAR

Un archivo JAR contiene los siguientes componentes:

  • Clases Java Compiladas: Las clases Java compiladas que conforman la aplicación o biblioteca.
  • Recursos: Cualquier recurso necesario para la aplicación o biblioteca, como imágenes, archivos de configuración o archivos de datos.
  • Archivo Manifest: Un archivo especial que contiene metadatos sobre el archivo JAR, como la clase principal, el classpath y otra información.

La estructura de un archivo JAR se puede visualizar utilizando un diagrama mermaid:

graph TD A[JAR File] --> B[Compiled Java Classes] A --> C[Resources] A --> D[Manifest File]

Al comprender la estructura y el propósito de los archivos JAR, puedes crear y utilizarlos de manera efectiva en tus proyectos de desarrollo Java.

Crear un archivo JAR ejecutable

Para crear un archivo JAR ejecutable, debes especificar una clase principal que se ejecutará cuando se ejecute el archivo JAR. Esto se hace agregando una entrada especial al archivo manifest del archivo JAR.

Archivo Manifest

El archivo manifest es un archivo especial dentro del archivo JAR que contiene metadatos sobre el contenido del JAR. Se encuentra en la ruta META-INF/MANIFEST.MF dentro del archivo JAR.

El archivo manifest puede contener varias entradas, pero la más importante para crear un JAR ejecutable es la entrada Main-Class. Esta entrada especifica el nombre completamente calificado de la clase principal que se debe ejecutar cuando se ejecute el archivo JAR.

Crear un JAR ejecutable

Para crear un archivo JAR ejecutable, sigue estos pasos:

  1. Compila tu código Java y asegúrate de que todas las clases y recursos necesarios estén en los directorios correctos.

  2. Crea un archivo manifest con la entrada Main-Class. Por ejemplo:

    Manifest-Version: 1.0
    Main-Class: com.example.MyMainClass
  3. Empaqueta las clases compiladas, los recursos y el archivo manifest en un archivo JAR utilizando el comando jar:

    jar cvfm my-app.jar manifest.mf -C bin/.

    Este comando crea un archivo JAR llamado my-app.jar con el contenido del directorio bin/ y el archivo manifest.mf como manifest.

  4. Ahora puedes ejecutar el archivo JAR ejecutable utilizando el comando java:

    java -jar my-app.jar

El proceso de creación de un archivo JAR ejecutable se puede visualizar utilizando un diagrama mermaid:

graph TD A[Compile Java Code] --> B[Create Manifest File] B --> C[Package into JAR File] C --> D[Run Executable JAR]

Siguiendo estos pasos, puedes crear un archivo JAR ejecutable que se puede distribuir y ejecutar fácilmente en cualquier sistema con un entorno de tiempo de ejecución Java instalado.

Personalizar el manifiesto JAR

El archivo manifiesto JAR proporciona una forma de almacenar metadatos sobre el contenido del archivo JAR. Estos metadatos se pueden utilizar para personalizar el comportamiento del archivo JAR y la forma en que se ejecuta. En esta sección, exploraremos algunas de las entradas comunes del manifiesto que puedes utilizar para personalizar tus archivos JAR.

Entradas comunes del manifiesto

A continuación, se presentan algunas de las entradas de manifiesto más utilizadas:

Entrada Descripción
Main-Class Especifica el nombre completamente calificado de la clase principal que se debe ejecutar cuando se ejecute el archivo JAR.
Class-Path Especifica una lista de archivos JAR u otros recursos que se deben agregar al classpath cuando se ejecute el archivo JAR.
Created-By Especifica el nombre y la versión de la herramienta utilizada para crear el archivo JAR.
Sealed Especifica si el archivo JAR está sellado, lo que significa que su contenido no se puede modificar.
Implementation-Title, Implementation-Version, Implementation-Vendor Proporcionan información sobre la implementación del archivo JAR.
Specification-Title, Specification-Version, Specification-Vendor Proporcionan información sobre la especificación que implementa el archivo JAR.

Personalizar el manifiesto

Para personalizar el archivo manifiesto, puedes crear un archivo de texto con las entradas deseadas y luego utilizar el comando jar para empaquetar el archivo JAR con el manifiesto personalizado.

Por ejemplo, para crear un archivo JAR con un manifiesto personalizado, puedes utilizar el siguiente comando:

jar cvfm my-app.jar manifest.mf -C bin/.

Aquí, manifest.mf es el nombre del archivo que contiene las entradas del manifiesto personalizado.

También puedes utilizar el comando jar para actualizar un archivo JAR existente con un nuevo manifiesto:

jar ufm existing-app.jar new-manifest.mf

Este comando actualiza el manifiesto del archivo existing-app.jar con las entradas del archivo new-manifest.mf.

Al personalizar el manifiesto JAR, puedes proporcionar información adicional sobre tu aplicación Java y controlar cómo se ejecuta.

Resumen

Al final de este tutorial, tendrás una comprensión sólida de los Archivos Java (Java Archives, JARs) y de cómo crear un archivo JAR ejecutable con un manifiesto personalizado. Este conocimiento te ayudará a empaquetar y distribuir tus aplicaciones Java de manera más efectiva.