Déploiement d'une application basée sur Eclipse au moyen de Java Web Start

Les applications générées dans Eclipse 3.1 peuvent dorénavant être déployées au moyen de Java Web Start.

Java Web Start "est une technologie de déploiement d'application permettant de lancer des applications complètes, par un simple clic de souris dans votre navigateur Web".

Pour démarrer Eclipse à partir de Java Web Start, les prérequis suivants doivent être respectés :

Les étapes suivantes décrivent la définition d'un site Java Web Start prenant en charge une application basée sur une fonction RCP.

Etape 1 : création d'un dispositif d'encapsulage

Etape 2 : exportation de la fonction d'encapsulage et de startup.jar

Remarque. Avant de poursuivre, assurez-vous de disposer d'un magasin de clés. Eclipse ne fournit pas de fonction permettant de créer des magasins de clés. Vous devez utiliser un outil spécifique. En outre, assurez-vous que l'application Eclipse que vous utilisez pour le développement s'exécute sur un kit SDK Java et non un JRE. Si cette contrainte n'est pas satisfaite, la signature jar échoue.

Etape 3 : création du fichier principal jnlp

Une application Java Web Start est décrite par des fichiers JNLP. Ces derniers remplacent les fichiers eclipse.exe et config.ini par un mécanisme équivalent. Par exemple, JNLP dispose d'un mécanisme de contrôle de la fenêtre d'accueil, de moyens de transmission des paramètres et de définition des constituants d'une application qui lui sont propres.

Lorsque vous avez procédé à l'exportation, tous les fichiers JNLP simples ont été créés, de sorte qu'il ne vous reste plus qu'à écrire le fichier principal qui contrôlera l'application. La majorité du fichier principal étant commune à toutes les applications, il est recommandé de commencer par le modèle à documentation intégrée suivant.

Sur le site prenant en charge votre application, le fichier doit se trouver dans le même dossier que startup.jar. Une fois que vous aurez terminé l'édition de ce fichier, votre application sera prête.

<?xml version="1.0" encoding="UTF-8"?>
<jnlp 
    spec="1.0+" 
    codebase="http://myCompany.org/jnlpServer" 
    href="mail.jnlp"> <!-- URL du site contenant l'application jnlp. Elle doit correspondre à la valeur utilisée lors de l'exportation. Href, le nom du fichier -->
  <information>
    <!-- nom lisible utilisateur de l'application -->
    <title> Mail Application </title>  
    <!-- nom du fournisseur -->
    <vendor>My company</vendor>
    <!-- page d'accueil du fournisseur --> 
    <homepage href="My company website" /> 
    <!-- description du produit -->
    <description>Il s'agit d'un client de messagerie</description> 
    <icon kind="splash" href="splash.gif"/>
  </information>
 
  <!--requiert tous les droits d'accès de l'application. Inchangé-->
  <security>
    <all-permissions/>
  </security>
 
  <!-- Le nom de la principale classe à exécuter. Inchangé-->
  <application-desc main-class="org.eclipse.core.launcher.WebStartMain">
    <argument>-nosplash</argument>
  </application-desc>
 
  <resources>
    <!-- Référence à startup.jar. Inchangé -->
    <jar href="startup.jar"/>
 
    <!-- Référence à tous les plug-in et dispositifs constituant l'application -->
    <!-- Ici, nous faisons référence au dispositif d'encapsulage car il fait référence, de façon transitive,  à tous les autres plug-in requis -->
    <extension 
        name="Wrappering feature"
        href="features/Wrappering_1.0.0.jnlp"/>
 
    <!-- Informations généralement indiquées dans config.ini -->
    <property 
        name="osgi.instance.area" 
        value="@user.home/Application Data/mail"/>
    <property 
        name="osgi.configuration.area" 
        value="@user.home/Application Data/mail"/>
        
    <!-- L'ID du produit à exécuter, tel qu'il apparaît dans la page des généralités de l'éditeur du produit -->
    <property 
        name="eclipse.product" 
        value="mail.product"/>
  </resources>

  <!-- Indique le JRE à utiliser, en fonction de la plate-forme,  --> 
  <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>

Conseils : une fois que vous avez créé ce fichier, vous pouvez le stocker dans le dispositif d'encapsulage, dans le même dossier que startup.jar, de manière à obtenir la structure complète lors de chaque exportation.

Application basée sur des plug-in

Même si votre application RCP ne fait pas appel à des dispositifs, l'utilisation de Java Web Start est possible.

Pour ce faire, il est recommandé de créer un dispositif d'encapsulage en vue de faciliter la création du fichier jnlp principal et de simplifier le déploiement. Ce dispositif d'encapsulage répertorie tous les plug-in de votre application. Une fois que le dispositif a été mis à jour, copiez le fichier JNLP généré et modifiez-le pour qu'il devienne votre fichier JNLP principal.

Restrictions connues