Desplegar aplicación basada en Eclipse con Java Web Start

Las aplicaciones construidas en Eclipse 3.1 pueden desplegarse ahora utilizando Java Web Start.

Java Web Start "es una tecnología de despliegue de aplicaciones que proporciona al usuario el poder de lanzar aplicaciones con numerosas características con una sola pulsación desde el navegador Web".

Los requisitos previos para iniciar Eclipse desde Java Web Start son:

Los pasos siguientes describen cómo configurar un sitio de Java Web Start que sirva a una aplicación RCP basada en características.

Paso 1, crear una característica de envoltura

Paso 2, exportar la característica de envoltura y el archivo startup.jar

Nota. Antes de continuar con este paso, asegúrese de que tiene un almacén de claves disponible. Eclipse no proporciona recursos para crear almacenes de claves. Tiene que utilizar keytool. Además, asegúrese de que la aplicación Eclipse con que realiza el desarrollo se ejecuta en un Java SDK en lugar de un JRE. Si no se satisface esta restricción, la firma de JAR dará una anomalía.

Paso 3, crear el archivo jnlp principal

Los archivos JNLP describen una aplicación Java Web Start. Sustituyen los archivos eclipse.exe y config.ini por un mecanismo equivalente. Por ejemplo, JNLP tiene su propio mecanismo para controlar la pantalla inicial, maneras de pasar parámetros y definir qué es lo que constituye la aplicación.

Cuando se realiza la exportación, se han creado todos los archivos JNLP simples, de manera que le queda escribir el archivo principal que controlará la aplicación. Dado que la mayor parte del archivo principal es común a todas las aplicaciones, es recomendable que empiece desde la siguiente plantilla autodocumentada.

En el sitio que sirve a su aplicación, el archivo debe estar ubicado en la misma carpeta que startup.jar. Una vez que haya terminado de editar este archivo, la aplicación estará lista.

  <?xml version="1.0" encoding="UTF-8"?>
<jnlp 
    spec="1.0+" 
    codebase="http://myCompany.org/jnlpServer" 
    href="mail.jnlp"> <!-- URL al sitio que contiene la aplicación jnlp. Debe coincidir con el valor utilizado en la exportación. Href, nombre de este archivo -->
  <information>
    <!-- nombre de la aplicación legible por el usuario -->
    <title> Mail Application </title>  
    <!-- nombre del proveedor -->
    <vendor>My company</vendor>
    <!-- página de presentación del proveedor -->
    <homepage href="My company website" /> 
    <!-- descripción del producto -->
    <description>This is a mail client</description> 
    <icon kind="splash" href="splash.gif"/>
  </information>
 
  <!--solicitar todos los permisos de la aplicación. Esto no cambia-->
  <security>
    <all-permissions/>
  </security>
 
  <!-- Nombre de la clase principal que se debe ejecutar. Esto no cambia-->
  <application-desc main-class="org.eclipse.core.launcher.WebStartMain">
    <argument>-nosplash</argument>
  </application-desc>
 
  <resources>
    <!-- Referencia a startup.jar. Esto no cambia -->
    <jar href="startup.jar"/>
 
    <!-- Referencia a todos los conectores y características que constituyen la aplicación -->
    <!-- Nos referimos a la característica de envoltura ya que se refiere de forma transitiva a todos los demás conectores necesarios -->
<extension 
        name="Wrappering feature"
        href="features/Wrappering_1.0.0.jnlp"/>
 
    <!-- Información habitualmente especificada en config.ini -->
    <property 
        name="osgi.instance.area" 
        value="@user.home/Application Data/mail"/>
    <property 
        name="osgi.configuration.area" 
        value="@user.home/Application Data/mail"/>
        
    <!-- ID del producto que se debe ejecutar, como se encuentra en la página de visión general del editor de producto -->
    <property 
        name="eclipse.product" 
        value="mail.product"/>
  </resources>

  <!-- Indique en una base de plataforma qué JRE se debe utilizar -->
  <resources os="Mac">
    <j2se version="1.5+" java-vm-args="-XstartOnFirstThread"/>
  </resources>
  <resources os="Windows">
    <j2se version="1.4+"/>
  </resources>
  <resources os="Linux">
    <j2se version="1.4+"/>
  </resources>
</jnlp>

Sugerencias: una vez que haya creado este archivo, puede almacenarlo en la característica de envoltura en la misma carpeta que startup.jar, de esta manera en cada exportación obtendrá la estructura completa.

Aplicación basada en conectores

Aunque su aplicación RCP no utiliza características, es posible adaptarla a Java Web Start.

Para ello, se recomienda que cree una característica de envoltura para facilitar la creación del archivo jnlp principal y facilitar el desarrollo. Esta característica de envoltura listará todos los conectores de la aplicación. Una vez que haya actualizado la característica, copie el archivo JNLP generado y modifíquelo para que se convierta en el archivo JNLP principal.

Limitaciones conocidas