Hello la jeunesse,
Voilà, je développe une application web, en Java.
Le fait est que l’on développe plusieurs versions, et pour l’instant, on ne fait pas vraiment des patches.
Ce matin, j’ai décidé de résoudre ce problème, en me basant sur ce principe :
- Je regroupe tous les fichiers de mon appli web qui doivent être mis à jour par le patch.
- Je zippe tout ça dans un fichier patch.zip.
- J’ai créé une petite application Java qui va lire ce fichier zip, et qui va décompresser les fichiers au bon endroit.
- Je compile mon application.
Pour faire plus simple, j’ai mis mon fichier patch.zip dans le fichier jar de mon application. Donc au final, je n’ai qu’un seul fichier.
A ce niveau là, j’ai un fichier pouet.jar, qui lorsque je l’exécute, réalise ce que je veux. C’est la joie.
Mais voilà, je suis perfectionniste, et j’ai décidé que je voulais créer un executable pour mon application (afin d’éviter d’avoir à forcer l’utilisateur d’installer un JRE juste pour installer le patch). Du coup, j’utilise l’utilitaire launch4j, qui me crée un fichier patch.exe (qui wrappe mon pouet.jar en fait).
Le problème est que maintenant, mon code qui lit le fichier ZIP contenu dans le fichier JAR ne fonctionne plus, puisque le fichier ZIP est contenu dans le JAR lui même contenu dans le EXE (vous suivez ?).
Comment faire pour résoudre ce problème, sachant que :
- Je ne souhaite pas utiliser autre chose que le Java pour créer mon application.
- Je souhaite vraiment avoir un exécutable pour mon fichier de patch (et non un .JAR).
- Je souhaite qu’il n’y ait qu’UN seul fichier par patch (sinon, j’aurais fait en sorte d’avoir mon patch.exe et mon patch.zip, qui lui, ne contient que les ficheirs à mettre à jour).
Alors, une idée ? Y a moyen de paramètrer launch4j* pour résoudre mon problème ?
- Si un autre outil me permet de créer un exécutable à partir de mon fichier JAR tout en me résolvant mon problème, je suis prenneur !
Merci merci.