• 30 minutes
  • Facile
Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Introduction du cours

Le langage de programmation Java est l'un des langages les plus utilisés de nos jours. Il est facile à comprendre parce qu'il est complètement orienté objet. Il est aussi facile de déboguer un programme Java. Mais lorsque vous générez votre exécutable, celui-ci est sous un format particulier : le Executable JAR File. Le problème est que les adeptes de Windows utilisent en général des fichiers d'extension (.exe). Si vous distribuez votre fichier d'extension (.jar), vous risquez d'avoir des utilisateurs pas très contents et c'est votre logiciel qui en souffrira. Dans ce cours, je vais vous montrer comment créer un exécutable classique de Windows à partir d'un Executable JAR File. Pour cela, nous allons nous servir d'un logiciel nommé Launch4j.

Présentation de Launch4j

Je sais que plusieurs d'entre vous lirons "launch quatre j" mais souffrez que je dise qu'on dit "launch for j" où "j" est mis pour "Java". Autrement dit Launch4j est une application qui permet de créer des "lanceurs" (exécutables Windows classiques (launchers en anglais)) pour des applications développées en Java. C'est une application développée par Grzegorz Kowal (n'attrapez pas de torticolis en essayant de prononcer Grzegorz! Contentez vous de Kowal) :p. C'est un logiciel gratuit et fourni sans garantie aucune. Il est développé en Java et est très simple à utiliser.

Launch4j est fourni avec une documentation très précise mais écrite en Anglais. D'ailleurs qui vous a dit qu'on pouvait faire de la programmation sans avoir une base en Anglais? 18 Le site officiel de Launch4j est le suivant: http://launch4j.sourceforge.net/

Téléchargement et installation

Dans ce cours, nous allons utiliser la version 3.0.2 de Launch4j. Vous pouvez vous procurer cette version sur le site officiel de Launch4j. Assurez vous de choisir la bonne version (par rapport à votre OS) de Launch4j. Le téléchargement ne prendra que quelques minutes.

Pour installer Launch4j sous Windows, il suffit de double-cliquer sur le fichier exécutable que vous avez téléchargé. Une page contenant un message de bienvenue vous est présentée. Cliquez sur suivant. Le contrat de Licence utilisateur vous est alors présenté. Prenez connaissance de ce qui est dit dans ce contrat, puis décidez-vous. :waw: 

Contrat de Licence utilisateur de Launch4j

Si vous acceptez les termes du contrat de Licence utilisateur, vous serrez amenés à choisir le
répertoire d'installation de Launch4j dans la prochaine étape.

Choix du dossier d'installation de Launch4j
Choix du dossier d'installation de Launch4j

Cliquez enfin sur installer et laissez l'installation suivre automatiquement son cours.

Démarrer Launch4j

Une fois la procédure d'installation terminée, vous devez démarrer Launch4j. On peut le faire grâce à l'utilitaire exécuter de Windows ou alors graphiquement.

Pour le démarrage via l'interface de Windows, il suffit de chercher le fichier Launch4j.exe dans vos programmes puis de cliquer dessus.

Pour l'utilitaire exécuter, tapez Windows + R puis entrez launch4j dans la zone de texte. Appuyez ensuite sur la touche Entrée. On obtient donc ceci.

Page d'accueil de Launch4j
Page d'accueil de Launch4j

Comme vous pouvez le constater, le logiciel a une interface conviviale et intuitive. En anglais certes mais intuitive. La génération de notre fichier (.exe) se fera grâce aux renseignements que nous fournirons dans les différents onglets. Nous allons donc  parcourir ces onglets et générer un exécutable Windows classique.

Création de notre exécutable

L'interface graphique de Launch4j vous propose plusieurs onglets. Comme je l'ai dit précédemment, Launch4j générera votre fichier (.exe) en fonction des informations que vous fournirez dans chacun de ces onglets. Nous allons parcourir chacun de ces onglets de la gauche vers la droite. Pour pouvoir me suivre efficacement, je vous demanderai de vous munir d'un petit logiciel Java et d'une icône (fichier ICO). Si vous n'avez aucun logiciel à votre portée, téléchargez celui-ci. Je crois qu'il fera l'affaire. Si vous êtes prêts, commençons tout de suite. :D

Configuration de base (Onglet nommé Basic)

Dans cet onglet nous allons renseigner plusieurs informations de base. Toutes les zones du formulaire dont les étiquettes sont précédées d'une étoile (*) sont obligatoires. Le formulaire de cet onglet vous propose les champs suivants:

Output File

Ce renseignement est obligatoire. Il nous est demandé là de spécifier le chemin d'accès à l'exécutable Windows que nous voulons obtenir. Pour remplir ce champ, nous allons cliquer sur le bouton situé juste devant cette zone de texte. Dans la boite de dialogue qui vous est présentée, choisissez le répertoire dans lequel vous allez loger votre launcher puis entrez le nom de votre launcher dans la zone de texte juste en bas. Veillez à ne pas oublier de rajouter l'extension (.exe) au nom de votre launcher. Cliquez sur enregistrer. Remarquez que la zone de texte Output File est automatiquement remplie. Chez moi cette zone contient le chemin suivant: C:\Users\Ndadji Maxime\Desktop\Launchers\Jeu Tic-Tac.exe

Jar

Cette zone de texte contiendra le chemin d'accès à votre fichier (.jar). Comme pour le champ Output File, cliquez sur le bouton de navigation et cherchez votre Executable JAR File.

Don't wrap the jar, launch only

Si vous cochez cette case, vous spécifiez à Launch4j qu'il doit créez un lanceur qui ne contiendra par votre Executable JAR File mais qui le lancera juste. Vous pouvez déduire par vous-même les différents inconvénients que cette façon de faire peut engendrer.

Manifest, Change dir et Command line args

Ces trois zones sont optionnelles. Cela tombe bien car nous allons les laisser telles qu'elles sont. Si vous voulez savoir à quoi elle servent, je vous conseille de lire la documentation de Launch4j. Je peux juste vous dire que Command line args permet de spécifier des constantes comme arguments de la ligne de commande pour votre application. Change dir vous permet de spécifier un chemin d'accès relatif entre votre exécutable Windows et votre Executable JAR File.

Icon

Allez chercher l'icône (le fichier d'extension .ico que je vous ai recommandé) de votre logiciel.

Process priority

Choisissez la priorité du processus de votre application. Personnellement je laisse ce renseignement inchangé. Donc je laisse une priorité normale.

Error Title

Launch4j signale les erreurs en utilisant une boite de dialogue. Dans cette zone, vous pouvez spécifier le titre de cette boite de dialogue.

Voici ce que j'obtiens au final:

Résultat sous l'onglet Basic
Résultat sous l'onglet Basic

Onglet Classpath

Dans cet onglet, vous pouvez personnaliser le classpath de votre application. Pour l'exemple de ce cours, nous allons laisser cet onglet sans modification. Mais si à jamais vous voulez modifier les informations de ce formulaire, il vous suffit de cocher Custom classpath et de choisir votre fichier JAR. Les classes contenant la méthode main apparaitront et il vous suffira de choisir la classe principale de votre application.

Onglet Header

Dans cet onglet nous allons spécifier le type de notre application et aussi les librairies à inclure s'il y'en a.

Header Type

Nous choisissons ici le type de notre application. Choisissez GUI ou Console selon que votre application est avec Interface graphique ou en console. Pour notre cas, nous choisissons GUI.

Object files

Cochez la case et choisissez des fichiers d'objets à inclure.

W32api

Choisissez les librairies à inclure dans le header de votre application.

Dans notre cas nous n'avons ni fichiers d'objets, ni librairies à inclure dans le header. On obtient donc ceci:

Résultat onglet Header
Résultat onglet Header

Onglet Single Instance

Dans cet onglet optionnel, nous allons configurer Launch4j pour que notre exécutable s'exécute en une seule instance. Pour cela nous allons configurer :

Allow a single instance of the application

Cocher cette case signifie que nous voulons que notre exécutable s'exécute en une seule instance à la fois.

Mutex name

Ce champ est obligatoire. Il vous permet de spécifier un nom de votre choix. Ce nom sera en réalité utilisé pour éviter que les ressources utilisées par votre application soient utilisées en même temps par une autre application (une autre instance de votre application par exemple). C'est un identifiant de votre application en quelque sorte. :honte:

Window title

Si l'utilisateur lance une autre instance de votre application, une fenêtre va l'avertir qu'une autre instance est déjà en cours d'exécution. Dans cette zone de texte on spécifie le titre de cette fenêtre là.

Au final j’obtiens ceci:

Résultat onglet Single instance
Résultat onglet Single instance

Onglet JRE

Dans le formulaire consacré aux options de la JRE (Java Runtime Environment), vous verrez les options suivantes:

Bundled JRE path

Utilisez cette zone pour spécifier le chemin d'accès (absolu ou relatif) à la JRE si à jamais vous l'avez incluse dans votre application.

Min JRE version et Max JRE version

Dans ces zones, nous allons spécifier respectivement la version minimale et la version maximale entre lesquelles la version de la machine virtuelle Java qui devra exécuter votre application doit se trouver. Ces versions doivent être sous le format x.x.xx est un chiffre.  La version maximale doit être strictement supérieure à la version minimale.

Initial heap size et Max heap size

Ces zones doivent contenir respectivement la taille initiale et la taille maximale de la mémoire (exprimée en MB et/ou en % de mémoire libre disponible) qui devront être allouées à votre logiciel pendant son exécution.

Les autres options de cet onglet permettent de passer des arguments pour votre application, à la machine virtuelle Java.

Pour notre exemple, nous allons juste ajouter la version minimale de la JRE. Nous allons utiliser la JRE 1.6.0.

Onglet Set env. variables

Cet onglet permet d'ajouter et de modifier des variables d'environnement. Dans notre cas, nous n'avons aucune variable d'environnement. Nous allons donc directement à l'onglet suivant.

Onglet Splash

Cet onglet optionnel vous permet d'ajouter un écran d'attente lors du chargement de votre application. Il suffit alors de cocher la case Enable splash screen puis de choisir une image au format (.bmp) sur votre disque dur.

Vous pouvez décider que votre écran d'accueil disparaisse à l'apparition de la première fenêtre.
Pour cela cochez Wait for window.

Vous pouvez plutôt  renseigner un temps au bout duquel votre écran disparaitra. Comme vous le soupçonnez certainement, :p cet onglet n'est valable que pour les applications avec interface graphique.

Pour notre exemple, nous allons nous passer d'un écran d'accueil.

Onglet Version info

Cet onglet est aussi optionel. Mais puisqu'il va nous permettre d'ajouter les informations sur notre logiciel, nous n'allons pas l'ignorer. Les informations que nous allons ajouter dans cet onglet seront ajoutées aux propriétés du fichier exécutable que nous allons créer. Commençons par cocher Add version information.

File version et Product version

Entrez respectivement la version de votre fichier et celle de votre produit dans les zones de texte. Le format est x.x.x.xx est un chiffre. Pour notre exemple nous allons entrer 1.0.0.0 dans les deux zones.

Free form

Ici, on va spécifier le texte que l'on veut voir affiché pour la version de notre fichier. Il n'y a aucun format particulier. Pour l'exemple nous mettons v1.0.

File Description et Copyright

Dans ces zones, nous allons entrer une description brève de notre fichier et un texte en guise de copyright respectivement.

Product name et Company name

Nous allons entrer le nom de notre logiciel et le nom de notre société. Le nom de la société n'est pas obligatoire contrairement au nom du logiciel.

Internal name

Il faut préciser le nom interne de l'application dans cette zone. En général, je remets le nom de mon produit à cet endroit.

Original filename

Entrez le nom original du fichier (.exe) qui va être généré. Ce nom doit être le même (sans le chemin d'accès) que vous avez entré dans le champ Output file de l'onglet Basic.

Il est temps de voir ce qu'on obtient au final.

Résultat de l'onglet Version info
Résultat de l'onglet Version info

Onglet Messages

Dans cet onglet, nous allons personnaliser les messages d'erreurs que pourrait rencontrer notre application.

Startup error

L'application n'a pas pu démarrer correctement.

Bundled JRE error

La JRE que vous avez inclus dans votre projet est introuvable ou corrompue.

JRE version error

L'utilisateur ne possède pas une version correcte de la JRE.

Launcher error

La JRE est absente ou corrompue.

Inst. already exists

Une instance de votre application est déjà en cours d'exécution.

Chez moi, j'obtiens ce qui apparait sur cette capture d'écran:

Résultat de l'onglet Messages
Résultat de l'onglet Messages

À présent que nous avons fait le tour des onglets disponibles, nous devons générer notre exécutable. Je vous conseille de le sauvegarder avant. Pour sauvegarder votre configuration, il suffit de cliquer sur le bouton sauvegarder de la barre d'outils. Le fichier de sauvegarde est sous le format XML par défaut. Pour générer votre exécutable, cliquez sur le bouton . Il ne vous reste plus qu'à tester  votre joli exécutable.

Launch4j peut être utilisé uniquement en ligne de commande. Pour en savoir plus, lisez la documentation de Launch4j.

Conclusion

C'est ici que s'achève cet article qui vous aura enseigné comment transformer vos (.jar) en (.exe) avec Launch4j. Je tiens à préciser que je ne vous est présenté que l'essentiel. Vous pouvez donc approfondir  votre étude en lisant la documentation de Launch4j. Merci d'avoir lu cet article. J'espère qu'il vous aura aidé et qu'il aura fait grimper un peu ma cote de popularité auprès de vous. :( À bientôt pour un autre article.

Exemple de certificat de réussite
Exemple de certificat de réussite