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 :

Problème de bibliothèque


Sujet :

Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Par défaut Problème de bibliothèque
    Bonjour,

    Voilà mon problème expliqué de manière synthétique:
    Dans mon application j'ai un bibliothèque bb1 qui a besoin d'une autre bibliothèque bb2. Suite à l'ajout d'une fonctionnalité, j'ai dû incorporer une troisième bibliothèque, bb3, qui est en faite une mise à jour de bb2. Le problème est que maintenant bb1 va piocher dans les class de bb3 et cela fait planter mon application. J'ai cherché une mise à jour de bb1 mais aucun résultat (peut être une bibliothèque maison...).

    Y aurait-il une solution pour ce problème ?

    Merci.

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    767
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 767
    Par défaut
    Si je comprend bien il n'y a plus de support pour faire évoluer bb1.

    La solution minimaliste est de voir si ta nouvelle fonctionnalité marche avec bb2.

    Sinon il va te falloir jouer avec les .jar et les modifier.

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    aucune

    si bb3 fournis les même classe que bb2, il faut jeter bb2 et donc s'arranger pour que bb1 sache utiliser bb3.

    Ou alors ne pas utiliser bb3, bien venu dans le cercle vicieux des numéros de version des dépendance, où X ne marche pas sans mise à jour, mais Y ne marche plus après la mise à jour

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Par défaut
    Citation Envoyé par Jimmy_ Voir le message
    Si je comprend bien il n'y a plus de support pour faire évoluer bb1.
    Exactement oui.

    Citation Envoyé par Jimmy_ Voir le message
    La solution minimaliste est de voir si ta nouvelle fonctionnalité marche avec bb2.
    Non, elle ne fonctionne pas avec bb2. J'ai vraiment besoin de ces 2 jar...

    Citation Envoyé par Jimmy_ Voir le message
    Sinon il va te falloir jouer avec les .jar et les modifier.
    Donc passer par un décompileur?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    aucune

    si bb3 fournis les même classe que bb2, il faut jeter bb2 et donc s'arranger pour que bb1 sache utiliser bb3.

    Ou alors ne pas utiliser bb3, bien venu dans le cercle vicieux des numéros de version des dépendance, où X ne marche pas sans mise à jour, mais Y ne marche plus après la mise à jour
    Plus qu'à plancher sur la façon dont je vais annoncer ça à mon boss...

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    767
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 767
    Par défaut
    Citation Envoyé par Micke7 Voir le message
    Donc passer par un décompileur?
    Oui moi je changerai que les noms des packages de bb2 ou de bb3 pour que bb1 et ton code pointe sur les bonnes classes.
    Ca doit pas être si compliqué.

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    mouais, mais c'est de la bidouille, et ca veux dire que tu saura plus faire interagir une partie de ton code avec bb1

    Ce sont des bibiliothèques open sources ou closed source?

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    mouais, mais c'est de la bidouille, et ca veux dire que tu saura plus faire interagir une partie de ton code avec bb1

    Ce sont des bibiliothèques open sources ou closed source?
    Elles sont closed source...

  9. #9
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    malheureusement la solution la plus 'stable' et abordable serait de mettre la nouvelle fonctionnalité dépendant de bb3 dans un jvm ou tout du moins un classloader différent de cemme utilisant bb1 et bb2

  10. #10
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    767
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 767
    Par défaut
    Bidouille, bidouille ... modifier la JVM ou le ClassLoader c'est pareil ...
    De toute façon avec des soucis de version il n'y a pas de solution propre.

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    malheureusement la solution la plus 'stable' et abordable serait de mettre la nouvelle fonctionnalité dépendant de bb3 dans un jvm ou tout du moins un classloader différent de cemme utilisant bb1 et bb2
    Facile à mettre en place ça?

  12. #12
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    non pas facile à mettre en place, comem tu va avoir deux classloader isolé, tu aura aussi techniquement deux partie de ton application isolées l'unde de l'autre, c'est presque la même chose que d'avoir deux applications différentes, les conséquences sont assez lourdes


    L'idée serai ceci:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    classloader principal --- classloader 1 --> classes bb1, bb2 et du code à toi
                    \-------- classloader 2 --> classes bb3, autre code à toi

    Les classes dans les classloaders séparés ne se parlent pas facilement. c'est comme avoir deux webapps différentes sur un tomcat, si tu vois ce que je veux dire.

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Par défaut
    Bon j'ai 4h pour corriger tout un tas de bug, me renseigner sur le classloader, créer mon propre classLoader, l'implanté convenablement dans mon code et trouver une méthode qui va permettre à ces deux classloader de dialoguer ensemble...

    En clair:



    Mais merci quand même pour votre aide

  14. #14
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    un classloader qui séparerais les deux trucs t'en a pour minimum 2 semaines de travail à décanter ça correctement


    T'as juste à dire à ton patron que les bibliothèques sont incompatible entre elles

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    un classloader qui séparerais les deux trucs t'en a pour minimum 2 semaines de travail à décanter ça correctement
    Le problème est que la modification concerne un évènement qui se termine fin avril

    Non mais ce n'est pas grave, je vais trouver un autre moyen...et je demanderais une petite augmentation en même temps

    Allez, je déleste
    Merci.

  16. #16
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    767
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 767
    Par défaut
    Renomer les packages tu en as pas pour 4h, faut juste bien intervenir au bon endroit.

  17. #17
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    jimmy: oui, faut juste trouver un outils pour altérer correctement le byte code, changer tout ton code qui fait appel à cette librairie, et s'assurer qu'aucun fichier dans le jar ne référence les classe. Sans compter les String éventuelles dans le bytecode qui pourraient "en dur" référencer un nom de classe comme quand on écrite

    class.forName("xxx.yyy.UneClasse");

    pas de garantie de succès en gros

Discussions similaires

  1. Problème Message Bibliothèque manquante
    Par philweb dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/07/2007, 05h44
  2. Problème compilation bibliothèque graphique
    Par akrogames dans le forum C++
    Réponses: 5
    Dernier message: 09/03/2007, 13h00
  3. Problème fonction bibliothèque
    Par Matiou83 dans le forum C
    Réponses: 4
    Dernier message: 09/10/2006, 11h21
  4. [VBA-E]Problème de bibliothèque
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/07/2006, 01h45
  5. Utiliser CFile... Problème de bibliothèques
    Par GregouzeLaLoose dans le forum MFC
    Réponses: 8
    Dernier message: 01/07/2005, 15h08

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