ressource externe

1 réponse
Avatar
Emmanuel PIC
Mon application charge, au runtime, une classe MyResource qui se trouve
être dans un jar externe (Plugin.jar, non présent dans le classpath).
Cette classe MyResource essaie d'ouvrir un ResourceBundle sur une
ressource présente dans ce jar externe (Plugin.jar). Une exception est
alors lancée pour signaler un problème lors de l'initialisation du
ResourceBundle.

Si par le même mécanisme, j'ajoute Plugin.jar au classpath, j'obtiens la
même erreur.

En revanche, si j'ouvre la resource de Plugin.jar directement depuis mon
application, je n'ai aucune erreur...


Ce n'est donc manifestement pas un problème de classpath.
Personnellement, je pencherais pour un problème de ClassLoader. C'est
vraiment un problème...

Merci de vos lumières

1 réponse

Avatar
Emmanuel PIC
J'ai trouvé une solution : utiliser le ClassLoader système de la manière
suivante :

ResourceBundle bundle ResourceBundle.getBundle(RESOURCE_NAME,
locale,
ClassLoader.getSystemClassLoader());

Ainsi, on retombe sur ses pieds, et tout fonctionne (j'avoue ne pas
vraiment savoir pourquoi étant donné que je ne comprenais pas vraimetn
pourquoi ca ne marchait pas)


Emmanuel PIC wrote:

Mon application charge, au runtime, une classe MyResource qui se trouve
être dans un jar externe (Plugin.jar, non présent dans le classpath).
Cette classe MyResource essaie d'ouvrir un ResourceBundle sur une
ressource présente dans ce jar externe (Plugin.jar). Une exception est
alors lancée pour signaler un problème lors de l'initialisation du
ResourceBundle.

Si par le même mécanisme, j'ajoute Plugin.jar au classpath, j'obtiens la
même erreur.

En revanche, si j'ouvre la resource de Plugin.jar directement depuis mon
application, je n'ai aucune erreur...


Ce n'est donc manifestement pas un problème de classpath.
Personnellement, je pencherais pour un problème de ClassLoader. C'est
vraiment un problème...

Merci de vos lumières