Classloader - Java - Programmation
Marsh Posté le 01-10-2003 à 18:35:25
Code :
|
ca utilisera le classloader utilisé pour charger la classe pour charger le fileName.
De façon générale, c'est toujours cette méthode qu'il faut utiliser plutot que celle que tu as écrite.
Marsh Posté le 01-10-2003 à 19:09:59
benou a écrit :
|
Bravo, ça marche, merci !
En lisant la javadoc des deux méthodes, la différence n'est pas évidente à part que l'une est static et pas l'autre.
K.
Marsh Posté le 01-10-2003 à 19:31:25
bha non c'est pas pareil : le getSystemResourceAsStream utilise le classloader system (le 1er) alors que ma méthode utilise le calssloader utilisé pour charger la classe ...
Dans un environement mono-classloader ca ne changera rien, mais c'est aps le cas de tomcat.
Et vraiment, faut avoir de sacrés bonnes raisons pour utiliser le getSystemRessourceAsStream
Marsh Posté le 01-10-2003 à 20:02:13
benou a écrit : |
Je n'avais pas de bonnes raisons.
J'ai eu besoin de faire ça un jour et ça marchait jusqu'à ce que je veuille le faire dans une appli web...
J'le f'rais pu, promis
Encore merci.
K.
Marsh Posté le 01-10-2003 à 18:19:22
Pour charger un fichier properties sans me soucier de sa localisation, j'utilise parfois ceci :
où fileName vaut par exemple "machin.properties". Il suffit alors que ce fichier soit dans le classpath de l'appli et ça marche.
Problème :
J'ai voulu faire la même chose avec une appli web sous tomcat et là je me heurte aux différents classloaders ou quelquechose de ce genre.
Visiblement il existe différents scopes, différents classpath car si je mets mon fichier properties tout bêtement dans WEB-INF/classes, le classloader ne le trouve pas.
Est-ce que ça dit quelquechose à quelqu'un ?