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 :

[classpath] conflit entre different .jar [Trucs & Astuces]


Sujet :

Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 17
    Points : 18
    Points
    18
    Par défaut [classpath] conflit entre different .jar
    J'ai un soucis quand je lance HSQL sur un serveur (sous windows 2003 avec java 5) qui possède déjà une version moins récente de HSQL dans un path...

    Je lance dans un .bat la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp hsqldb.jar org.hsqldb.Server ...
    Le .jar et le .bat sont dans le meme dossier.

    Le problème est qu'il ne lance pas la classe contenu dans le hsqldb.jar de mon dossier, mais une autre contenu dans un .jar que je n'arrive pas à localiser...

    Deux questions :
    - Comment savoir où java va chercher la classe chargée ? (dans quel chemin)
    - Comment empécher java de charger celle qui est déjà présente dans un coin du disque pour qu'il charge uniquement la classe contenu dans un fichier .jar bien précis : le mien.


    PS : j'ai essayé aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp ./hsqldb.jar org.hsqldb.Server ...
    ça ne marche pas mieux :-(

  2. #2
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    Pour savoir d'ou est chargée une classe.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Merci
    ça confirme bien mon problème : je n'arrive pas à préciser le chargement des classes d'un jar particulier.
    Des propositions ?

  4. #4
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Citation Envoyé par Bobo59
    Le problème est qu'il ne lance pas la classe contenu dans le hsqldb.jar de mon dossier, mais une autre contenu dans un .jar que je n'arrive pas à localiser...
    J'ai du mal à comprendre d'ou vient ton problème : tu as deux classes avec le meme nom dans le meme package ? Ca ne devrait pas compiler.
    Sinon, il ne devrait pas y avoir de problème.

    Au pire, tu peux utiliser la réflexion, avec la classe ClassLoader.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    J'ai deux classes avec un même nom (deux version differentes de hsqldb) mais dans deux jar differents.
    Le pb est que je veux préciser laquelle lancée (la dernière et pas celle déjà présente sur le serveur du client) cependant java me lance toujours celle ki est contenue dans le jar qui est dans le path.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    Il semblerait donc que ton .bat contienne un autre hsqldb.jar (mais tu t'en doutais ).

    Donc vérifie dans un premier temps le classpath de ta session windows (dans une console dos: echo %CLASSPATH%).
    Il y a de grandes chances que cette variable d'environnement contienne ton jar qui te pose problème.

    1) c'est le cas : soit tu peux modifier la config windows et dans ce cas tu supprime hsqldb.jar du classpath, soit tu ne peux pas et dans ce cas modifie le .bat pour ne pas inclure la variable d'environnement CLASSPATH.[/list]
    2) ce n'est pas le cas : regarder ce que fait le .bat : il est probable qu'il construise dynamiquement son classapth. Il faut alors regader où il cherche et quel est le classpath utilisé

    En espérant que cela te permette d'avancer .

    Jacques Desmazières

  7. #7
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Si le classpath marche comme le path unix, c'est les dossiers mentionnés en premier dans la variable qui seront visités en premier.

    Tu peux essayer de mentionner ton jar à utiliser avant ton ancien jar dans le classpath.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  8. #8
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        -Xbootclasspath:<directories and zip/jar files separated by ;>
                          set search path for bootstrap classes and resources
        -Xbootclasspath/a:<directories and zip/jar files separated by ;>
                          append to end of bootstrap class path
        -Xbootclasspath/p:<directories and zip/jar files separated by ;>
                          prepend in front of bootstrap class path
    Attention, s'il y a des jar dans jre/lib/ext, ils sont prioritaires par rapport à tout les reste.

Discussions similaires

  1. Migration GlassFish : Conflit entre jar
    Par rosert dans le forum Glassfish et Payara
    Réponses: 2
    Dernier message: 16/10/2014, 11h53
  2. conflits entres differents javascript
    Par yooole dans le forum jQuery
    Réponses: 1
    Dernier message: 15/07/2011, 13h21
  3. Conflit entre bases de données
    Par BRODU dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/10/2004, 11h40
  4. conflit entre couleurs
    Par khayyam90 dans le forum OpenGL
    Réponses: 2
    Dernier message: 03/07/2004, 18h00
  5. [Technique] Conflits entre plusieurs requêtes
    Par Neowile dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 24/03/2003, 09h37

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