## Extraer el contenido de un fichero JAR

### El comando de la herramienta Jar

El formato básico del comando para extraer el contenido de un fichero JAR es:

    jar xf fichero-jar [fichero(s)-archivados]

Echemos un vistazo a las opciones y argumentos de este comando:

- La opción x indica que quieres extraer los ficheros de un archivo JAR.
- La opción f indica que el fichero JAR que se quiere ver esta especificado en la línea de comandos. Sin la opción f, la herramienta Jar esperaría un fichero en stdin.
- El argumento fichero-jar es el nombre de fichero (o path y nombre) del fichero JAR del que quieres extraer los ficheros.
- fichero(s)-archivados es un argumento opcional que consiste en un lista delimitada por espacios de los ficheros que se quieren extraer del archivo. Si este argumento no está presente, la herramienta Jar extraerá todos los ficheros del archivo.

Como es normal, el orden en que aparezcan las opciones x y f no importa, pero no debe existir ningún espacio entre ellas.

Cuando se extraen ficheros, la herramienta Jar copia los ficheros deseados y los escribe en el directorio actual, reproduciendo la estructura de directorios que los ficheros tenían en el archivo. El archivo JAR original no se modifica.

Precaución: Cuando se extraen ficheros, la herramienta Jar sobreescribe cualquier fichero que tenga el mismo nombre y path que los ficheros extraidos.

### Un ejemplo

Extraigamos algunos ficheros del archivo JAR TicTacToe que utilizamos en las secciones anteriores. Recordemos que el contenido de TicTacToe.jar era:

    META-INF/MANIFEST.MF
    TicTacToe.class
    audio/
    audio/beep.au
    audio/ding.au
    audio/return.au
    audio/yahoo1.au
    audio/yahoo2.au
    images/
    images/cross.gif
    images/not.gif

Supongamos que queremos extraer los ficheros TicTacToe.class y cross.gif. Para hacer esto, puedes utilizar este comando:

    jar xf TicTacToe.jar TicTacToe.class images/cross.gif

Este comando hace dos cosas:

- Sitúa una copia de TicTacToe.class en el directorio actual.
- Crea el directorio images, si no existe, y sitúa una copia de cross.gif en él.

El fichero JAR original no se modifica.

Se pueden extraer todos los ficheros que se quieran de la misma forma. Cuando el comando no específica qué ficheros extraer, la herramienta JAR extrae todos los ficheros del archivo. Por ejemplo, puedes extraer todos los ficheros del archivo TicTacToe utilizando este comando:

    jar xf TicTacToe.jar

Ozito