Bonjour !
J'ai récemment créé un programme en Java pour lequel j'ai fait un installateur pour Windows (à l'aide de Launch4j pour faire une .exe et de Inno Setup pour l'installateur en lui même).
L'installateur copie un dossier jre dans lequel j'embarque une JRE et un dossier lib dans lequel j'ai mis les librairies dont j'ai besoin et mon propre .jar, il copie aussi l'exécutable à côté (c'est plutôt logique ).
Le premier argument de mon programme est le chemin d'accès à un fichier. Je voudrais pouvoir lancer mon programme de n'importe où et utiliser un chemin relatif pour mon fichier.
new File(chemin) semblait ne pas fonctionner pour les chemins relatifs, j'ai donc utilisé System.getProperty("user.dir") pour reconstruire le chemin complet. J'ai vu grâce à ça que le user.dir était toujours le répertoire contenant mon .exe, même quand je fais D:\Program Files\MonProgramme\mon.exe monFichier à partir du répertoire de mon fichier.
D'où ma première question : est-il possible de changer ça ? Que user.dir soit bien le repertoire dans lequel l'utilisateur était quand il a lancé le programme ?
En soit, ça ne me dérange pas particulièrement de déplacer mon .exe, le précédent programme fonctionnait déjà comme ça. Le problème est que si j'utilise cette solution, je dois aussi copier ma jre et mes librairies à côté, sinon il me dit qu'il n'a pas trouvé de jre. Et là ça commence à prendre de la place, donc je me demandais si il y avait un moyen dire à mon programme où se trouve la jre, sachant que si je crée une variable d'environnement JAVA_HOME, il ne la prend pas du tout en compte...
Merci d'avance de vous pencher sur mon problème
Partager