un problème d'accesseurs.... [java] - Java - Programmation
MarshPosté le 07-05-2004 à 12:37:52
Alors voilà le problème :
J'ai une application java dans un fichier jar, celle-ci doit charger dynamiquement un ensemble de classes "plugins" dans un dossier plugin au lancement de mon programme. (rien d'original me dirait vous)
Jusque là pas de problème, les fichiers se chargent comme il faut, pour peu qu'il soit bien nommé etc. J'utilise pour les charger une instance d'URLClassLoader, mais le bug que je parlerai est le même si j'utilise un FileClassLoader de ma composition (...), ou avec Class.forName(...)
Le souci, c'est que les fichiers en question appartiennent à un paquetage nommé astrolabe.dessin, et qu'ils "devraient" pouvoir accéder à des variables internes à ce même paquetage (les fichiers de ce paquetage sont stockés dans le fichier jar).
Plus précisement, j'ai un tableau numSommet dans ma classe DessinRadial du paquetage astrolabe.dessin ce même DessinRadial va appeller une méthode interne à un des plugins (calculPositionSommet, c'est original...) en retour, le plugin doit attribuer les valeurs au DessinRadial.
Seulement, voila ce qui se passe quand l'exécution se lance
Code :
java.lang.IllegalAccessError: try to access field astrolabe.dessin.DessinRadial.
tabNumSommet from class astrolabe.dessin.Eades
at astrolabe.dessin.Eades.calculPositionSommet(Eades.java:41)
Alors au départ, je pensais que ça pouvais venir d'un pb de Loader... mais non, maintenant je suis sur que mon Loader vient bien du même endroit.
Notons que si je "rajoute" mes fichiers au jar, évidement, ça va marcher
Je pense que cela viendrait du fait que la VM n'arrive pas à comprendre que mes classes "externes" et celle du jar font partie du même paquetage, et qu'il fait une distinction (c'est ce qu'il me semble afficher).
Dans ce cas comment passer outre si quelqu'un a une idée je suis preneur.
Merci d'avance
--------------- La vie c'est comme une boite de chocolat.
Marsh Posté le 07-05-2004 à 12:37:52
Alors voilà le problème :
J'ai une application java dans un fichier jar,
celle-ci doit charger dynamiquement un ensemble de classes "plugins" dans un dossier plugin au lancement de mon programme. (rien d'original me dirait vous)
Jusque là pas de problème, les fichiers se chargent comme il faut, pour peu qu'il soit bien nommé etc. J'utilise pour les charger une instance d'URLClassLoader, mais le bug que je parlerai est le même si j'utilise un FileClassLoader de ma composition (...), ou avec Class.forName(...)
Le souci, c'est que les fichiers en question appartiennent à un paquetage nommé astrolabe.dessin, et qu'ils "devraient" pouvoir accéder à des variables internes à ce même paquetage (les fichiers de ce paquetage sont stockés dans le fichier jar).
Plus précisement, j'ai un tableau numSommet dans ma classe DessinRadial du paquetage astrolabe.dessin
ce même DessinRadial va appeller une méthode interne à un des plugins (calculPositionSommet, c'est original...) en retour, le plugin doit attribuer les valeurs au DessinRadial.
Seulement, voila ce qui se passe quand l'exécution se lance
Alors au départ, je pensais que ça pouvais venir d'un pb de Loader... mais non, maintenant je suis sur que mon Loader vient bien du même endroit.
Notons que si je "rajoute" mes fichiers au jar, évidement, ça va marcher
Je pense que cela viendrait du fait que la VM n'arrive pas à comprendre que mes classes "externes" et celle du jar font partie du même paquetage, et qu'il fait une distinction (c'est ce qu'il me semble afficher).
Dans ce cas comment passer outre si quelqu'un a une idée je suis preneur.
Merci d'avance
---------------
La vie c'est comme une boite de chocolat.