IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

[JAR]Chemin du jar


Sujet :

Java

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Points : 102
    Points
    102
    Par défaut [JAR]Chemin du jar
    Comment connaitre le chemin physique du fichier jar que l'on est en train d'executer ?

  2. #2
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    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.

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    ca marche pas.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    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.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut
    Utiliser des classpath c'est moche.

    Dans ta classe de lancement, tu fais this.getClass().getResource("chemin relatif");

    Voir la FAQ java

  6. #6
    Membre régulier
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    Citation Envoyé par Ricou47
    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.
    Et je lui passe quoi en parametre à getResource ?

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Si tu passes une chaîne vide : "" , il te renvoie le chemin d'accès à ta classe (incluant le jar auquel elle appartient)

  8. #8
    Membre régulier
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    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".

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Je me penche un peu plus sur le problème dès que j'ai 5 minutes...

  10. #10
    Membre régulier
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    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...

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Effectivement, ça marche hors d'un JAR, mais pas dans un JAR...
    Sinon tu as aussi la possibilité d'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String message = System.getProperty("user.dir");
    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.

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    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 :
    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);
    Et voici le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    java -jar Test.jar 
    jar:file:/Users/eric/Desktop/Test.jar!/Main.class
    C'est violent, mais ça marche

  13. #13
    Membre régulier
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    ca marche impec merci.

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    You're welcome!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Chemin relatif [JAR]
    Par Floriang33 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 22/01/2010, 17h25
  2. [JAR]chemin pour acceder au ressources & JAR
    Par DenisLorrain dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/04/2005, 22h45
  3. [JAR] Inclure les external jar ds mon jar exec...
    Par doudine dans le forum Général Java
    Réponses: 4
    Dernier message: 21/01/2005, 14h12
  4. [Jar]Faire un jar exécutable
    Par Melchisedec dans le forum Général Java
    Réponses: 2
    Dernier message: 09/06/2004, 18h58
  5. [JAR]eclipe et jar => pas la meme execution
    Par herminig dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 28/05/2004, 20h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo