Ahora que Google prohibió el uso del plugin npapi en su navegador debemos encontrar algunas alternativas para ejecutar contenido java del lado del cliente. Una de ellas es Java Web Start, que consiste en un archivo JNLP, que los clientes se deben descargar y ejecutar en su máquina
Este archivo no es más que un XML con información acerca del JAR que queremos ejecutar. Al abrir el JNLP la màquina virtual de JAVA se encargará de bajar y ejecutar el JAR correspondiente o abrirlo desde su caché de archivos.
Para este ejemplo usaremos Netbeans para generar automáticamente el JNLP.
1) Usaremos un código sencillo: Un dialog presentando un "Hola mundo",
2) En las propiedades del proyecto entramos a la sección Application->Web Start
3) Dentro de esta sección debemos chequear la casilla "Enable Web Start" y en el combo de "Codebase" elegir la opción "User defined"
4) Esto habilitará el campo "Codebase Preview", este campo es muy importante ya que define la ruta del servidor donde se almacenarán nuestros archivos JAR y JNLP, esto es para seguridad de que nuestra aplicación no sea ejecutada desde servidores externos.
5) En caso que tengamos la necesidad de generar nuestro JNLP dinámicamente y la ruta del mismo sea diferente de la del JAR podemos hacer uso del comodín "*", lo que indicará que nuestra aplicación puede ser accedida desde cualquier lado sin tener en cuenta la ruta.
El parámetro "Codebase" es agregado automáticamente en el MANIFEST de nuestro JAR por Netbeans, si queremos hacer uso de JNLP este parámetro es vital. Este parámetro de debe agregar ya sea por el IDE (como estamos haciendo y es automático) o manualmente en el MANIFEST.
6) Por último en la pestaña Files podemos encontrar el archivo JNLP y el JAR
Si observamos el archivo JNLP es llenado con los parámetros que especificamos anteriormente, donde debemos tener en cuenta:
- El parámetro "href" indica la ruta de nuestro archivo JAR
- Si usamos una ruta en el parámetro "codebase" en "href" sólo debemos especificar el nombre del JAR ya que este será relativo a la ruta de "codebase"
- Si usamos el comodín "*" en el parámetro "codebase" en "href" debemos especificar la ruta absoluta hacia nuestro JAR
Para nuestro caso tomaremos el "launch.jnlp" sólo como plantilla ya que este será generado desde el servidor y se deberá especificar la ruta absoluta hacia los JAR en "href".