Lors du chargement des propriétés d'une classe dans le package, com.al.common.email.templates
vous pouvez utiliser
Properties prop = new Properties();
InputStream in = getClass().getResourceAsStream("foo.properties");
prop.load(in);
in.close();
(Ajoutez toute la gestion des exceptions nécessaire).
Si votre classe n'est pas dans ce package, vous devez acquérir le InputStream légèrement différemment:
InputStream in =
getClass().getResourceAsStream("/com/al/common/email/templates/foo.properties");
Les chemins relatifs (ceux sans '/' de début) dans getResource()
/ getResourceAsStream()
signifient que la ressource sera recherchée par rapport au répertoire qui représente le package dans lequel se trouve la classe.
Utiliser java.lang.String.class.getResource("foo.txt")
rechercherait le fichier (inexistant) /java/lang/String/foo.txt
sur le chemin de classe.
L'utilisation d'un chemin absolu (qui commence par '/') signifie que le package actuel est ignoré.
Pour ajouter à la réponse de Joachim Sauer, si jamais vous avez besoin de le faire dans un contexte statique, vous pouvez faire quelque chose comme ceci:
(La gestion des exceptions a été éludée, comme auparavant.)
la source
resources
dossier dans unmaven
projetLes deux cas suivants concernent le chargement d'un fichier de propriétés à partir d'un exemple de classe nommé
TestLoadProperties
.Cas 1: chargement du fichier de propriétés avec
ClassLoader
Dans ce cas, le fichier de propriétés doit se trouver dans le
root/src
répertoire pour un chargement réussi.Cas 2: chargement du fichier de propriétés sans utiliser
ClassLoader
Dans ce cas, le fichier de propriétés doit se trouver dans le même répertoire que le
TestLoadProperties.class
fichier pour un chargement réussi.Remarque:
TestLoadProperties.java
etTestLoadProperties.class
sont deux fichiers différents. Le premier,.java
file, se trouve généralement dans lesrc/
répertoire d' un projet , tandis que le second,.class
file, se trouve généralement dans sonbin/
répertoire.la source
la source
la source
En supposant que vous utilisez la classe Properties , via sa méthode de chargement , et je suppose que vous utilisez le ClassLoader getResourceAsStream pour obtenir le flux d'entrée.
Comment passez-vous le nom, il semble qu'il devrait être sous cette forme:
/com/al/common/email/templates/foo.properties
la source
J'ai réussi à résoudre ce problème avec cet appel
De plus, vous devez mettre votre fichier any.properties dans / src / main / resources
la source
PropertiesUtil
?Personne ne mentionne la solution similaire mais encore plus simple que ci-dessus sans avoir besoin de traiter le package de la classe. En supposant que myfile.properties se trouve dans le chemin de classe.
Prendre plaisir
la source
utilisez le code ci-dessous s'il vous plaît:
la source