Voici un retour d'expérience dans la mise en oeuvre de WebStart, avec des fonctionnalités de type Windows communes.
L'idée est de mettre en téléchargement une appli .jar, l'installer automatiquement sous Windows (ou autre – je n'ai pas testé), créer les raccourcis sur le desktop et dans le menu Démarrer, et créer les associations (faire un double-clic sur un fichier ouvre automatiquement l'appli et passe l'adresse du fichier dans la ligne de commande).
Contexte : Win 7 32 – Éclipse JUNO, JDK 1.7
A partir d'un jar runnable (monAppli.jar dans cet exemple), il nous faut plusieurs choses :
1) un fichier .jnlp,
2) éventuellement des icones au format png (dans cet exemple - respecter la transparence est bienvenu), 64x64,
3) un dossier sur un site Internet avec une page et un lien particulier.
Le fichier jnlp :
Il est chargé par le WebStart du poste client, lorsque l'utilisateur clique sur le lien. WebStart le lit et exécute certaines fonctions.
Voici un exemple de fichier :
monAppli.jnlp
Il est placé sur monsite, dans le dossier deploiement sous la racine du site (arbitraire).
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="http://www.monsite.com/deploiement/" href="monAppli.jnlp">
<information>
<title>monAppli</title>
<vendor>maSociete</vendor>
<homepage href="http://www.monsite.com/deploiement/"/>
<description>Mon Application : nouvelle version</description>
<description kind="short">Version en debuggage</description>
<icon href="http://www.monsite.com/deploiement/icone_de_webstart.png" />
<icon kind="shortcut" href="http://www.monsite.com/deploiement/icone_appli_windows.png" />
<shortcut online="false">
<desktop/>
<menu submenu="monAppli"/>
</shortcut>
<association extensions="_fichier_monAppli" mime-type="application/monAppli"/>
</information>
<security>
<all-permissions/>
</security>
<update check="always" policy="prompt-update" />
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="monAppli.jar" />
</resources>
<application-desc main-class="StartUp"/>
</jnlp>
Quelques remarques :
<jnlp spec="1.0+" codebase="http://www.monsite.com/deploiement/" href="monAppli.jnlp"> : le fichier pointe sur lui-même
<icon href="http://www.monsite.com/deploiement/icone_de_webstart.png" /> : petite personnalisation de WebStart (cela ne fait pas de mal et on peut aller plus loin)
<icon kind="shortcut" href="http://www.monsite.com/deploiement/icone_appli_windows.png" /> : l'icone utilisée dans Windows
<menu submenu="monAppli"/> : mise en place du raccourci dans le menu démarrer
<association extensions="_fichier_monAppli" mime-type="application/monAppli"/> : mise en place des associations pour démarrer monAppli suite à un double-clic sur un fichier particulier (on peut mettre plusieurs associations) - on récupère dans args[] du main() les chemins des fichiers
<all-permissions/> : permet d'utiliser toutes les fonctionnalités prévues (attention : le jar doit être signé)
<application-desc main-class="StartUp"/> : la classe de boot qui contient la méthode main() de monAppli.
<update check="always" policy="prompt-update" /> : si une nouvelle version est disponible sur le serveur, alors une boite s'affiche pour donner le choix à l'utilisateur de mettre à jour. On peut aller plus loin sur cet aspect.
ATTENTION : dans cette configuration, même si l'utilisateur ouvre l'appli depuis un fichier ou l'icone de l'appli ou le menu démarrer, la détection de mise à jour se fait.
Celle-ci ne se fait pas si on ajoute la ligne : <offline-allowed />
La page HTML :
Une fois le fichier placé, nous créons une page HTML avec un lien qui pointe sur ce fichier monAppli.jnlp. Ici elle s'appelle index.html, et elle est placée dans le dossier deploiement du site, avec le jnlp :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Document sans nom</title>
</head>
<body>
<H1>Mon Application</H1>
<a href="monAppli.jnlp">Lancez mon appli maintenant...</a>
</body>
</html>
Nous plaçons aussi dans ce même dossier les 2 icones :
icone_appli_windows.png
icone_de_webstart.png
Et le monAppli.jar (signé)
Il y a des tas d'autres options : soyez courageux car les documentations sont rares...
Pour vérifier et améliorer, on peut aller dans le panneau de configuration/java/fichiers internet temporaires/visualiser :
on y trouve monAppli que l'on peut supprimer depuis cet endroit (clic-droit).
J'ai trouvé ce système très élégant et pratique. Il semble très bien fonctionner.
Hope this helps
Christian
Partager