- Renaud - | pascalou3 a écrit a écrit :
Salut,
je rencontre un problème de conflit de classes java lors du chargement d'une applet. Le poste utilise un logiciel qui préconise de spécifier une variable d'environnement CLASSPATH pour leur fichier jar. ce n'est pas propre et c'est ce qui me pose problème mais je dois faire avec.
Dans le fichier JAR du CLASSPATH et dans le miens, nous utilisons des classes SUN de même nom mais qui ne sont pas de même version, du coup ==> l'applet plante.
Je souhaiterai forcer au niveau des classes JAVA de mon applet le chargement des classes du fichier JAR référencé par ma page HTML pour ne pas utiliser les classes JAVA du fichier pointé par le CLASSPATH. Il semble qu'il y ai une possibilité en utilisant la notion de "ClassLoader" mais je ne l'ai jamais utilisé.
Avez vous des exemples ou une documentation sur laquelle je pourrai me baser ?
Avez vous des idées sur ce ptit blem ? (biensur, je ne peux pas modifier le CLASSPATH) !
Merci,
pascal.
|
Dans ton cas, tu dois utiliser le ClassLoader sans le faire heriter du ClassLoader courant (sinon il va continuer de charger d'abord les autres classes) (ou alors en le faisant heriter mais en changeant l'ordre de recherche ce qui risque d'impacter les perfs et la stabilite' (pas conseille'). Ensuite tu fais un Network ClassLoader qui va recuperer ton jar (seulement avec to package xml) sur ton serveur (donc 2 jars (1 pour l'appli, 1 pour l'xml)), rechercher les classes dedans (extraire un byte[] par classe en dezippant) puis les loader...
Si tu te lance la dedans, je peux te filer un coup de main, mais bonjour...
Est-ce que tu peux attaquer le pb differemment:
ton appli pourrait fonctionner avec differentes versions de ton parser xml, et au debut tu testes la verison ? (evidemment s'il y a 2398087 versions possibles, c'est le bordel)
Renaud |