Comment connaitre le chemin physique du fichier jar que l'on est en train d'executer ?
Version imprimable
Comment connaitre le chemin physique du fichier jar que l'on est en train d'executer ?
passe par le classloader je pense.
Genre getClassLoader(). Et ensuite tu dois pouvoir utiliser findRessource() ou getRessource().
ca marche pas. :cry:
Tu as bien essayé :
MaClasse.getClassLoader.getResource().toString(); ???
Ceci te renvoie normalement une URL jusqu'à ta classe, reste à couper ensuite ce qu'il y a en trop.
Utiliser des classpath c'est moche.
Dans ta classe de lancement, tu fais this.getClass().getResource("chemin relatif");
Voir la FAQ java
Et je lui passe quoi en parametre à getResource ?Citation:
Envoyé par Ricou47
Si tu passes une chaîne vide : "" , il te renvoie le chemin d'accès à ta classe (incluant le jar auquel elle appartient)
Chez moi ca renvoit "null".Citation:
Envoyé par Ricou47
Je me penche un peu plus sur le problème dès que j'ai 5 minutes...
c'est sympa merci...Citation:
Envoyé par Ricou47
Effectivement, ça marche hors d'un JAR, mais pas dans un JAR... :oops:
Sinon tu as aussi la possibilité d'utiliser :
si tu est sûr que l'endroit d'où tu as lancé ton jar est le répertoire contenant le jar. C'est dégueulasse, mais ça marche... La valeur user.dir contient le chemin du répertoire courant.Code:String message = System.getProperty("user.dir");
Je savais bien que la solution n'était pas loin !!!
Ma classe Main est à la racine de mon jar. Dans celle-ci, j'exécute le code suivant :
Et voici le résultat :Code:
1
2 String message = this.getClass().getClassLoader().getResource("Main.class").toString(); System.out.println(message);
C'est violent, mais ça marcheCode:
1
2java -jar Test.jar jar:file:/Users/eric/Desktop/Test.jar!/Main.class
ca marche impec merci.
You're welcome! :wink: