Présentation et utilisation de JSmooth

Baptiste Wicht

Cet article vous permettra de découvrir comment créer des lanceurs pour vos programmes Java avec JSmooth

- Titre : Présentation et utilisation de JSmooth

- Auteur : Baptiste Wicht

- Parution : 2 octobre 2006

- Licence : Copyright ® 2009 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Présentation

- II. Fonctionnalités

- III. Utilisation

- III-A. Skeleton

- III-B. Executable

- III-C. Application

- III-D. JVM Selection

- III-E. JVM Configuration

- III-F. Créer le lanceur

- IV. Liens

- V. Remerciements

I - Présentation

JSmooth est un logiciel qui permet de créer des lanceurs pour vos applications Java. Il va créer un .exe pour lancer votre .jar. Ce logiciel est sous licence GPL donc tout à fait libre. Etant développé en Java, ce logiciel est donc normalement compatible avec tous les OS à condition que la JVM soit installée; il est évident que les lanceurs n'auront pas besoin de la JVM.

Dans ce tutoriel, je vais commencer par vous présenter les différentes fonctionnalités de JSmooth et ensuite vous en expliquer le fonctionnement.

II - Fonctionnalités

Voici une liste (non exhaustive) de tout ce que vous permet de faire JSmooth :

- Si Java n'est pas installé sur la machine sur laquelle le lanceur est exécuté, l'utilisateur est averti et le lanceur lui indique où et comment installer Java

- Le lanceur possède plusieurs stratégies de recherche de JVM, cela permet d'avoir plus de chances de repérer un JVM installée de manière non conventionnelle, on peut aussi configurer cette stratégie nous-mêmes

- On peut forcer le programme à utiliser une JVM que l'on a distribuée avec notre software

- On peut spécifier une icône pour l'exécutable

- On peut configurer la JVM, en modifiant la mémoire allouée et/ou maximale ou en lui passant des arguments

- On peut créer des lanceurs pour des applications consoles ou pour des applications fenêtrées

- Toute la création du lanceur se fait depuis une interface graphique très simple

- On peut aussi sauvegarder des projets, ainsi, on le configure une fois et dès qu'il faut refaire le lanceur, il suffit de d'ouvrir à nouveau le projet et de le recompiler

- On peut passer des variables au programme Java, soit des valeurs fixes soit des variables soit des variables inaccessibles à Java telless que le nom de la machine

- Le programme vous met à disposition des "squelettes" de lanceur, c'est à dire des lanceurs dont la base est déjà configurée, par exemple pour une application console

Comme vous le voyez avec cette liste, on peut faire beaucoup de choses avec JSmooth. Je vais maintenant vous montrer comment créer un lanceur.

III - Utilisation

Pour commencer, nous aurons besoin d'un quelconque fichier .jar exécutable pour tester le programme.
Comme le programme est clairement découpé par parties (les boutons sur la gauche), on va nous aussi avancer partie par partie.

III-A - Skeleton

Skeleton

Skeleton Chooser : Vous permet de choisir entre une application console et une application fenêtrée. En fonction de votre choix, les propriétés vont s'initialiser
Skeleton Properties : Vous pouvez configurer les différentes propriétés de votre lanceur :

- Message : Le message qui sera affiché chez l'utilisateur s'il ne trouve pas Java

- URL : La page internet qu'il faut ouvrir si l'utilisateur dit qu'il veut installer Java

- Launch Java App in the exe process : Sélectionnez cette case, si vous voulez que votre programme Java soit lancé dans le même processus que le lanceur

- Debug Console : Sélectionnez la case si vous voulez que la console de JSmooth s'affiche en cas d'erreur.

III-B - Executable

Executable

Executable Binary : C'est le chemin vers l'exécutable qui sera généré
Executable Icon : Vous pouvez spécifier ici une icône pour votre exécutable
Current Directory : Si vous voulez que l'exécutable s'exécute dans un répertoire de celui dans lequel il se trouve

III-C - Application

Application

Main Class : La classe main de votre programme, celle qui contient la méthode main
Application Arguments : Les arguments que vous voulez passer à votre programme
Embedded Jar : Vous pouvez mettre ici un jar qui va être inclus directement dans le .exe et ne sera donc pas visible par les utilisateurs
Classpath : Vous pouvez ici spécifier le classpath de votre application

III-D - JVM Selection

JVM Selection

Minimum JVM Version : La version de JVM minimale qu'il faut pour faire tourner le programme, sous la forme 1.2, 1.4.2, ...
Maximum JVM Version : La version de JVM maximale qu'il faut pour faire tourner le programme, sous la forme 1.2, 1.4.2, ...
JVM Bundle : Si vous voulez utiliser une JVM que vous allez distribuer avec votre application, c'est juste le chemin vers celle-ci
JVM Search Sequence : Vous pouvez modifier l'ordre de recherche de JVM, vous pouvez monter ou descendre une recherche avec les flèches sur la droite

III-E - JVM Configuration

JVM Configuration

Maximum Memory : La mémoire maximum que la JVM peut s'allouer
Initial Memory Allocation : La mémoire initiale allouée à la JVM
Java Properties : Vous pouvez passer ici des variables à la JVM lors du lancement, par exemple -DJava.compiler

III-F - Créer le lanceur

Maintenant que vous avez remplis tous les champs dont vous aviez besoin, il vous faut cliquer sur le bouton en forme de roue dentée pour lancer la création du lanceur. Ou alors, vous pouvez aussi aller dans le menu Project et ensuite sur Compile pour compiler le lanceur.
Si tout se passe sans erreur, le fichier lanceur sera créé et vous pourrez le distribuer ainsi.

IV - Liens

Pour plus d'infos sur la création d'exécutables Java, vous pouvez lire ce tutoriel qui résume toutes les différentes manières de faire un exécutable en Java.

- Le site officiel de JSmooth

- Télécharger JSmooth

V - Remerciements

Merci à Ricky81 pour ses corrections