## Ejecutar software empaquetado en un fichero JAR

Ahora que has aprendido a crear ficheros JAR, ¿Cómo ejecutarás realmente el código que has empaquetado? Existen dos escenarios a considerar:

- Tu fichero JAR contiene un applet para ser ejecutado dentro de un navegador.
- Tu fichero JAR contiene una aplicación que es llamada desde la línea de comandos.

### Ficheros JAR en los Applets

Para llamar a un applet desde una página HTML y ejecutarlo dentro de un navegador, necesitas utilizar la etiqueta APPLET. (Puedes ver Escribir Applets para mas información sobre los applets.) Si el applet está empaquetado en un fichero JAR, lo unico diferente que tienes que hacer es utilizar el parámetro ARCHIVE para especificar el path relativo del archivo JAR.

Cómo ejemplo, utilizemos (de nuevo!) el applet TicTacToe que viene con el JDK de JavaTM. La etiqueta APPLET en el fichero HTML que llama a este applet se parcería a esto (ignorando la etiqueta ALT para más claridad):

    <applet code=TicTacToe.class
            width=120 height=120>
    </applet>

Si el applet TicTacToe estuviera empaquetado en un fichero JAR llamado TicTacToe.jar, podrías modificar la etiqueta APPLET con la sencilla adicción de un parámetro ARCHIVE:

    <applet code=TicTacToe.class
            archive="TicTacToe.jar"
            width=120 height=120>
    </applet>

El parámetro ARCHIVE especifica el path relativo para el fichero JAR que contiene TicTacToe.class. Este ejemplo asume que el fichero JAR y el fichero HTML están en el mismo directorio. Si no fuera así, deberías especificar el path del fichero JAR.

### Ficheros JAR para Aplicaciones - JDK 1.1

Puedes ejecutar apliaciones que están empaquetadas en ficheros JAR utilizando la herramienta jre del JDK 1.1:

    jre -cp app.jar MainClass

La opción -cp añade app.jar al classpath del sistema. MainClass identifica la clase dentro del fichero JAR que es el punto de entrada de la aplicación. (Recuerda que en un una aplicación, una de las clases debe tener un método con la firma: public static void main(String[] args) que sirve como punto de entrada o de arranque de la aplicación.)

### Ficheros JAR para Aplicaciones - sólo JDK 1.2

En la versión 1.2 del JDK, puedes ejecutar aplicaciones empaquetadas en ficheros JAR con el intérprete Java. El comando básico es:

    java -jar jar-file

La bandera -jar le dice al intérprete que la aplicación está empaquetada en un fichero JAR.

Nota: la opción -jar no está disponible en intérpretes anteriores a la versión 1.2 del JDK.

Sin embargo, para que este comando funcione, el intérprete necesita saber qué clase dentro del fichero JAR es el punto de entrada de la aplicación.

Para hacer esto, debes añadir una cabecera Main-Class al manifiesto del fichero JAR. La cabecera tiene esta forma:

    Main-Class: classname

donde classname es el nombre de la clase que es el punto de entrada de la aplicación.

Para crear un fichero JAR que tenga un manifiesto con la cabecera apropiada Main-Class, puedes utilizar la opción m como se describió en la sección anterior. Primero deberás preprarar una plantilla de manifiesto que consista en una sóla línea con la cabecera Main-Class y el valor. Por ejemplo, si tu aplicación fuera la aplicación de una sola clase HelloWorld, el punto de entrada, por su puesto, sería la clase HelloWorld, y tu plantilla de manifiesto podría ser como esta línea:

    Main-Class: HelloWorld

Asumiendo que tu plantilla se encuenta en un fichero llamado template, la podrías mezclar con el fichero de manifiesto del fichero JAR con uncomando como este:

    jar cmf template app.jar HelloWorld.class

Con tu fichero JAR preparado de esta forma, puedes ejecutar el programa HelloWorld desde la línea de comandos:

    java -jar app.jar

Ozito