Tutoriel d'utilisation de java web start

Java web start est une "technologie" de Sun (Oracle...) qui permet de lancer une application java depuis un navigateur internet. Attention ça n'est pas une applet, la fenêtre ne sera pas intégrée au navigateur !

Mais quel avantage par rapport à une application purement "desktop" alors ? Et bien pour moi l'intérêt est triple:

  • faciliter la tâche des utilisateurs que la perspective de télécharger-installer-lancer rechigne
  • assurer qu'ils lanceront toujours la dernière version de votre programme
  • être sûr de la version du jre utilisée
Afin d'utiliser java web start pour une de vos application, trois étapes:
  1. Créer une archive jar de votre programme java
  2. Créer un fichier descripteur du programme (.jnlp)
  3. Intégrer le tout dans une page web classique grâce à un lien sur le fichier descripteur
Il faut noter qu'une application lancée avec java web start possède des droits d'accès limités au niveau des entrées/sorties. Pour passer outre, il faut signer son archive jar ($cher$) ou l'auto-signer (tuto à venir) et dans ce cas l'utilisateur aura un petit warning au lancement.

1. Créer une archive jar de votre programme java

Cette étape peut être réalisée automatiquement par votre IDE si vous en utilisez un. Cependant il peut être intéressant de savoir le faire à la main.
Voilà un exemple dans le cas d'une application possédant 2 packages pack1 et pack2, la main class se trouvant dans le pack1
\\_ src
        \\_pack1
         \\          \\_Main.java
          \\          \\_Other.java
           \\_pack2
                       \\_Util.java
                    

Préparer l'arborescence:

mkdir -p classes/META-INF

Compiler tous les fichiers:

javac -d classes pack1/Main.java

Ajouter le fichier "MANIFEST" dans le répertoire META-INF

Contenu du MANIFEST:
Main-Class: pack1.Main
Class-Path: 

Créer l'archive jar:

cd classes
jar cmvf META-INF/MANIFEST.MF appli.jar pack1/ pack2/

 \\_ src
  \\       \\_pack1
   \\      \\          \\_Main.java
    \\      \\          \\_Other.java
     \\      \\_pack2
      \\                 \\_Util.java
       \\_classes
                     \\_appli.jar
                      \\_META-INF
                       \\              \\_MANIFEST
                        \\_pack1
                         \\          \\_Main.class
                          \\          \\_Other.class
                           \\_pack2
                                      \\_Util.class

2. Créer le fichier descripteur du programme (.jnlp)

Voilà son contenu dans notre cas particulier, les liens sont à adapter à votre cas:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://inouire.net/blog/index.php?post/2010/01/28/" href="http://inouire.net/blog/index.php?post/2010/01/28/">
    <information>
        <title>Appli</title>
        <vendor>inouire.net</vendor>
    </information>
    <resources>
        <!-- Application Resources -->
        <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="http://inouire.net/appli.jar" main="true" />
    </resources>
    <application-desc
         name="Appli"
         main-class="pack1.Main"
         width="1000"
         height="500">
     </application-desc>
     <update check="background"/>
</jnlp>
 

3. Intégrer le tout dans une page web

Uploader l'archive .jar et le fichier descripteur sur un espace web ou un serveur dédié, puis créer une page web contenant un lien hypertexte vers le fichier descripteur, et le tour est joué !
Exemple de fichier index.html basique à placer à coté de votre fichier jnlp:
 
<h1><a href="http://inouire.net/blog/index.php?post/2010/01/28/appli.jnlp">Appli web start</a></h1>
Un aperçu du résultat ici.

Source: sun.com
Vus : 753
Publié par Edouard : 53