Je rencontre des problèmes lorsque l'un des fichiers jar dont dépend mon application tente de charger un fichier de propriétés dans le fichier jar. Voici le code dans le pot.Charger le fichier de propriétés dans JAR?
static
{
Properties props = new Properties();
try
{
props.load(ClassLoader.getSystemResourceAsStream("someProps.properties"));
} catch (IOException e)
{
e.printStackTrace();
}
someProperty = props.getProperty("someKey");
}
Le fichier de propriétés est dans mon répertoire "src/main/resources" du projet Maven. Quand j'exécute ce code depuis mon test de junit dans Eclipse, il s'exécute très bien. Lorsque le projet est construit avec Maven dans un pot, et inclus comme une dépendance dans mon application webb, il ne parvient pas à localiser le fichier de propriétés. Je sais que le fichier de propriétés se trouve dans le répertoire de base du fichier jar, je ne sais pas comment résoudre ce problème.
Aidez s'il vous plaît!
getContextClassLoader() en outre, utiliser comme dans 'Thread.currentThread le classloader contexte du thread()' –
@binil T. écheveaux pour la pointe. Je n'ai jamais eu besoin de faire ça - quand est-ce nécessaire? – mdma
@binil - J'ai étudié ce problème un petit peu, et je comprends que le classloader de contexte est utilisé lorsque vous voulez sortir de la hiérarchie de classloader et utiliser un chargeur de classe qui n'est pas l'un des ancêtres de votre classloader. Le classloader de contexte n'est pas nécessaire ici car la ressource est dans la même application web, et donc dans le même classloader que MyClass. – mdma