Java: paquetes JAR
Expandir un .jar
Descomprimir y desempaquetar ficheros en un archivo JAR
jar xfv nombre_archivo.jar /destino/path
Crear un .jar
Comprimir y empaquetar ficheros en un archivo JAR no ejecutable
jar cfv nombre_archivo.jar archivo1 archivo2 archivo3 ...
- jar: comando para ejecutar la utilidad jar
- c: crea un archivo nuevo
- f: especifica el nombre del archivo
- v: da información detallada
Otras opciones:
- u: actualiza un archivo existente
- t: lista el contenido de un archivo
Comprimir y empaquetar ficheros en un archivo JAR ejecutable
Los archivos JAR contienen un manifest con información necesaria para la máquina virtual; contiene, entre otros datos, el nombre de la clase que se ejecutará al arrancar el archivo JAR. Para proporcionar esta información:
jar cmfv mainClass.txt nombre_archivo.jar *.class
- se crea un archivo de texto (llamado, por ejemplo, mainClass.txt) con 2 líneas:
- una primera línea con el texto (sin comillas) "Main-Class: clase_principal"
(clase_principal es el nombre de la clase principal sin extensión class) - una segunda línea en blanco (¡sin ella no funciona!)
- una primera línea con el texto (sin comillas) "Main-Class: clase_principal"
- m: incluye información del manifest desde el archivo especificado
Ejecutar un archivo JAR
java -jar nombre_archivo.jar
2. Cómo leer una imagen empaquetada en el archivo JAR
Para leer un archivo GIF o JPG empaquetado en un archivo JAR se puede usar este código:
/* para poder usar la clase URL hay que importar el paquete java.net.URL */
URL url = this.getClass().getResource( "carpeta/nombre_archivo.jpg" );
Una vez obtenida la URL, se accede a la imagen de varias maneras:
Image imagen = component.getToolKit()getImage(url);
Image imagen = Toolkit.getDefaultToolKit()getImage(url);
JLabel label = new JLabel();
label.setIcon (new ImageIcon ( url ));
Dependiendo del sitio en que getResource encuentra la imagen, la cadena devuelta URL presenta diferentes aspectos:
- imagen en un archivo JAR del disco local:
jar:file:C:/ruta_absoluta_al_archivo_jar.jar!/imagen.jpg
- imagen en un archivo JAR del servidor:
jar:http://www.dominio.com/archivo.jar!/imagen.jpg
- imagen en un archivo del disco local:
file:C:/ruta_absoluta_a_la_imagen.jpg
- imagen en un archivo del servidor:
http://www.dominio.com/ruta_relativa_a_la_imagen.jpg