Salut à tous,
J'essaie de charger des classes à partir du code binaire (.class) avec un ClassLoader dans le but d'extraire quelques informations concernant les classes (attributs, méthodes, héritages, interfaces ...).
J'arrive bien à Loader les classes, trouver la signature des attributs et méthodes, mais le problème qui arrive est le suivant:
Disons que j'ai chargé une classe Classe1 avec mon ClassLoader et que cette classe implémente l'interface Interface1, voici ce que je fais pour retrouver les interfaces que Classe1 implémente:
mais quand j'essaie d'extraire les interfaces avec:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Class classe1 = monClassLoader.loadClassFromFile( path, name); // fonctionne bien
ce qui arrive ici est que Interface1 n'est pas reconnu par le ClassLoader original mais seulement par mon ClassLoader (puisqu'elle ne fait pas partie du classpath) et donc quand j'appelle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Type[] iTypes = classe1.getGenericInterfaces();
celle ci déclenche une exception parce qu'elle ne connaît pas Interface1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Type[] iTypes = classe1.getGenericInterfaces();
Est ce qu'il y a un moyen de charger Interface1 et faire en sorte qu'elle soit reconnu comme si elle fesais partie du classpath ?
Merci !
Partager