Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3237 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Classloader

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Classloader

n°528039
krosso
j'suis à la bourre
Posté le 01-10-2003 à 18:19:22  profilanswer
 

Pour charger un fichier properties sans me soucier de sa localisation, j'utilise parfois ceci :
 

Code :
  1. prop = new Properties();
  2. prop.load(ClassLoader.getSystemResourceAsStream(fileName));


 
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 ?
 
 
 
 
 
 

mood
Publicité
Posté le 01-10-2003 à 18:19:22  profilanswer
 

n°528056
benou
Posté le 01-10-2003 à 18:35:25  profilanswer
 

Code :
  1. prop.load(this.getClass().getResourceAsStream(fileName));


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.


---------------
ma vie, mon oeuvre - HomePlayer
n°528076
krosso
j'suis à la bourre
Posté le 01-10-2003 à 19:09:59  profilanswer
 

benou a écrit :

Code :
  1. prop.load(this.getClass().getResourceAsStream(fileName));


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.


 
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.
 
 

n°528091
benou
Posté le 01-10-2003 à 19:31:25  profilanswer
 

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 :/


---------------
ma vie, mon oeuvre - HomePlayer
n°528112
krosso
j'suis à la bourre
Posté le 01-10-2003 à 20:02:13  profilanswer
 

benou a écrit :


Et vraiment, faut avoir de sacrés bonnes raisons pour utiliser le getSystemRessourceAsStream :/


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  :D  
 
Encore merci.
 
K.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Classloader

 

Sujets relatifs
[Java] Pb avec le ClassLoader [Résolu][JAVA/Eclipse] Pb de CLassLoader sous Eclipse [CONTOURNé]
Plus de sujets relatifs à : Classloader


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)