Bonjour à tous, je poste ici mais je sais pas si c'est dans la bonne partie du forum (ne pas hésité à déplacer le post)
bon, je vais essayer d'être clair...voici le contexte.
Je en train de développer un projet Java RCP, j'ai un de mes plugin qui fait de l'introspection pour charger dynamiquement des classes (editor). Le souci c'est que ce plugin est isolé au niveau de ses dépendances (c'est volontaire). Ceci implique que au moment de l'éxécution de l'instruction Class.forName("leNomDeMaClass"); j'ai un beau NoClassDefFoundError.
J'ai cru comprendre après quelques heures de recherches et de lecture que mon problème pouvait surement venir de mon ClassLoader. il faudrait que j'en redéfinisse un...
Plus clairement, les classes que je souhaient instancier ne font pas parti du plugin mais sont chargées normalement avec l'application car l'éditeur fait parti de l'application... résultat, comme elle ne font pas parti du plug-in, il m'envoie bouler à l'éxécution de l'introspection
Autre problème ! j'ai réussi à charger une de mes classes en lui indiquant le chemin absolu de la class via un classLoader (ce qui est bien) mais le problème, c'est quand j'aurais mon produit, je n'aurais plus la même structure de fichiers. Pour que ça marche, j'interogeais mon workSpace...
Auriez vous des idées...? Dois-je chercher du côté de classLoader...? du côté de mon classPath...?
Au passage dernière question, quand je lance mon produit, qu'est ce que j'ai en mémoire (je parle des classes) ? (ne devrais-je pas avoir les classes de mon éditeur...?)
Voici le basiquement ce qui se passe :
Plugin Présentation
-Il contient mes éditeurs et mes vues
Plugin d'introspection
-Il contient un fichier.properties (ce dernier contient le nom absolu de mes éditeurs pour pouvoir les charger à partir de Class.forName(String))
-Ma classe éxécutant l'introspection
Ma vue 1 veut ouvrir mon editeur 1 :
->Ma vue 1 interroge ma classe d'introspection afin qu'elle signale à mon éditeur 1 de s'ouvrir.
->Ma classe d'introspection intéroge le fichier properties et connait donc le nom de l'éditeur à ourvir
->Ma classe d'introspection utilise Class.forName(NomAbsoluDeMonEditeur1) pour récupérer la classe de l'éditeur 1
ça plante quand ma classe d'instropection fait Class.forName
Voilà
Merci d'avance
Partager