Java - JAR & MANIFEST.MF
Concepto
-
JAR
( Java ARchive)
-
Archivo comprimido
-
Se utiliza para empaquetar y distribuir un conjunto archivos en una sola unidad
-
-
MANIFEST.MF
-
Archivo de texto contiene
metadatos
sobre el contenido del archivoJAR
-
Se encuentra en el interior de los archivos
JAR
-
Organizados por pares
nombre-valor
en diferentes secciones -
Si se va a usar un archivo
JAR
como ejecutable el archivo delmanifiesto
debe especificar laclase principal
de la aplicación -
Ejemplo
Manifest-Version: 1.0 Main-Class: com.miempresa.ClasePrincipal Class-Path: lib/mi-libreria1.jar lib/mi-libreria2.jar
-
Crear archivo JAR sin MANIFEST.MF
- Creamos una clase
Java
// Ruta de los directorios de la clase MiClasePrincipal
package com.miempresa;
public class MiClasePrincipal{
public static void main(String [] args){
System.out.println("Ejemplo de archivo JAR");
}
}
- Compilamos el archivo
.java
desde la linea de comandos
javac MiClasePrincipal.java
- Creamos el archivo
JAR
a partir del archivo.class
sin añadirle elMANIFEST.MF
java -cf <NuevoNombre.jar> *.class
Crear archivo JAR con MANIFEST.MF
- Creamos una clase
Java
// Ruta de los directorios de la clase MiClasePrincipal
package com.miempresa;
public class NuevaClasePrincipal{
public static void main(String [] args){
System.out.println("Ejemplo de archivo JAR");
}
}
- Compilamos el archivo
java
desde la linea de comandos
javac NuevaClasePrincipal.java
- Creamos el archivo
JAR
a partir del archivo.class
sin añadirle elMANIFEST.MF
java -cf <NuevaClasePrincipal.jar> *.class
- Creamos un directorio llamado
lib
para almacenar las libreriasJAR
que vamos a incluir en elMANIFEST.MF
-
Estructura de Directorios
* java_manifiesto * com * miempresa * NuevaClasePrincipal.class * NuevaClasePrincipal.java * lib * MiClasePrincipal1.jar * MiClasePrincipal2.jar
-
Construimos el archivo
MANIFEST.MF
desde cualquier editor de texto y lo añadimos a la ruta de directorios del proyecto donde tenemos el archivo que queremos transformar enJAR
* java_manifiesto * com * miempresa * NuevaClasePrincipal.class * NuevaClasePrincipal.java * lib * MiClasePrincipal1.jar * MiClasePrincipal2.jar MANIFEST.MF
-
Abrimos el archivo
MANIFEST.MF
con cualquier editor de texto y le agregamos los siguientes datosManifest-Version: 1.0 // Versión del Manifest Main-Class: com.miempresa.NuevaClasePrincipal // Ruta de los directorios de la clase principal Class-Path: lib/MiClasePrincipal1.jar lib/MiClasePrincipal2.jar // Archivos JAR externos que usará el proyecto
-
Compilamos el proyecto con la clase principal y con el
MANIFEST.MF
- Desde la ruta del proyecto principal
jar cvfm NuevaClasePrincipal.jar MANIFEST.MF .\com\miempresa\NuevaClasePrincipal.class
- Si todo se ha creado de forma correcta aparecerá este mensaje
added manifest
adding: com/miempresa/NuevaClasePrincipal.class(in = 496) (out= 341)(deflated 31%)
- Y el archivo en la ruta en el directorio principal de nuestro proyecto
NuevaClasePrincipal.jar
- Ejecutamos el archivo
JAR
desde la linea de comandoscmd
para comprobar si funciona
java -jar NuevaClasePrincipal.jar
// Salida → Ejemplo de archivo JAR
Deja un comentario