Histoire de pas mourir idiot, si quelqu'un peut m'expliquer pourquoi il fallait récupérer le thread courant ...
Dans quel thread il s'exécutait précédemment ? Et pourquoi ne trouvait-il pas le fichier .properties ?
Message numéro 1: il faut le mettre dans le package
Message numéro 2: tu essaie partout sauf dans le package. Les emplacements "src/test/resources/fr/projet/db/db.properties" et "src/main/resources/fr/projet/db/db.properties" pouvaient convenir.
Message numéro 3: tu n'es plus passé par la classe:
Il y a deux série de méthodes getRessource[asStream]:
celles du classloader: qui cherchent à partir de la racine du classpath (ce qui correspond à ton numéro 2 et ton numéro 3)
celles présente sur l'objet Class, qui cherchent relativement au package de la classe, ce qu'on t'as signalé en 1 et dont tu n'a pas tenu compte.
Voilà pourquoi l'un marche et pas l'autre.
Remarque que tu n'es pas obligé de passer par le context classloader, tu peux très bien faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 getClass().getResourceAsStream("/db.properties"); // on note la présence du '/' en tête getClass().getClassLoader().getResourceAsStream("db.properties");
Ça n'était pas de la mauvaise volonté, j'avais juste compris à l'envers. Je croyais que Népomucène me disait de spécifier en argument le chemin complet du fichier ...
C'était donc ça ...
Je vais essayer de retenir cette petite subtilité ...
Nickel, c'est parfait !
Encore merci à vous 3 pour votre aide.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager