Application basée sur le déploiement d'eclipse avec Java Web Start

Les applications générées dans Eclipse peuvent ê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 du dispositif 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 dispositif permettant de créer des magasins de clés. Vous pouvez utiliser l'application keytool livrée avec le kit JDK. 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-ins 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-ins requis -->
    <extension 
        name="Wrapper 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>

Conseil : 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-ins 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.

Divers

Java Web Start sous linux

Lorsqu'une application eclipse est démarrée avec Web Start sous Linux, le système de fenêtrage par défaut est Motif. Si vous voulez exécuter GTK, vous devez affecter la valeur "gtk" à la propriété osgi.ws dans le fichier jnlp principal. Par exemple, vous pouvez ajouter les lignes :

  <resources os="Linux"/>
        <property name="osgi.ws" value="gtk"/>
  </resources>

Restrictions connues