Comment connaitre le chemin physique du fichier jar que l'on est en train d'executer ?
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().
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.
ca marche pas.
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 ?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".Envoyé par Ricou47
Je me penche un peu plus sur le problème dès que j'ai 5 minutes...
c'est sympa merci...Envoyé par Ricou47
Effectivement, ça marche hors d'un JAR, mais pas dans un JAR...
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 : Sélectionner tout - Visualiser dans une fenêtre à part 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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 String message = this.getClass().getClassLoader().getResource("Main.class").toString(); System.out.println(message);
C'est violent, mais ça marche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2java -jar Test.jar jar:file:/Users/eric/Desktop/Test.jar!/Main.class
ca marche impec merci.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager