
Envoyé par
keguira
J'ai créé un jar et j'ai un fichier dbproperties.properties dans le meme répertoire ET dans le lib/ (pour voir si ça fait une différence). Et je lance via la commande :
java -classpath p:\javamail\lib\ -jar p:\javamail\javamail.jar
Lorsque on utilise l'option -jar, les options -classpath ou -cp ainsi que la variable d'environnement CLASSPATH sont ignoré !!!
Le seul moyen d'ajouter des éléments au classpath est de modifier la valeur de l'attribut Class-Path du manifest (en utilisant des chemins relatifs par rapport au jar !).

Envoyé par
keguira
J'ai seulement réussi avec
getClass().getClassLoader().getResourceAsStream("/dbproperties.properties");
C'est bizarre parce que cela n'aurait pas dû marcher 
Lorsqu'on utilise le ClassLoader, on doit spécifier le chemin complet logique dans le classpath sans / initial. Donc si le fichier est à la racine du classpath tu aurais du utiliser ceci :
getClass().getClassLoader().getResourceAsStream("dbproperties.properties");
A l'inverse avec getClass() on recherche un fichier par rapport au package de la classe, et on utilise un / initial pour indiquer que l'on souhaite rechercher à partir de la racine du classpath, donc l'équivalent est :
getClass().getResourceAsStream("/dbproperties.properties");
a++
Partager