Bonjour,
je développe actuellement un programme qui doit permettre de charger une classe (j'ai redéfini un ClassLoader pour cela) dont le fichier .class est selectionné par l'utilisateur via une JFileChooser.
Exemple de classe chargée :
C:/exemple/HelloWord.class
Le chemin passé au ClassLoader est C:/exemple/ et le nom de la classe HelloWord
Ceci fonctionne très bien lorsque la classe ne fait pas partie d'un package (comme c'est le cas ici). En revanche, lorsqu'elle fait partie d'un package, cela plante !
Exemple :
C:/exemple/monPackage/HelloWord.class
Le chemin passé au ClassLoader est C:/exemple/monPackage/ et le nom de la classe HelloWord alors que le chemin devrait être C:/exemple/ et le nom de la classe monPackage.HelloWorld pour que çà fonctionne !
Y'a t'il un moyen de récupérer le (les) package(s) au(x)quel(s) appartient une classe ?
Ceci me permettrait de concaténer le (ou les) nom(s) du (des) packages séparé(s) par un (des) '.' au nom de la classe et de remonter d'autant de niveaux que de packages avant de passer le chemin au ClassLoader.
Peut etre, récupérer directement dans le .class, le nom du (ou des) package(s) ? Mais comment savoir ou se situe cette information ? Une autre idée sinon ?
Toutes vos réponses seront les bienvenues, je me casse la tête depuis pas mal d'heure dessus déjà![]()
Merci d'avance
Partager