un fichier de propriétés fournis avec l'application ne devrait pas être chargé en utilisant le système de fichiers, mais en utilisant le chargeur de classe. En effet, le fichier de propriétés, une fois l'application empaquetée, sera intégré dans un fichier jar, avec les fichiers .class.
Si le fichier est config.properties
dans le package com.foo.bar
, alors vous devriez le charger en utilisant
InputStream in = SomeClass.class.getResourceAsStream("/com/foo/bar/config.properties");
Ou avec
InputStream in = SomeClass.class.getClassLoader().getResourceAsStream("com/foo/bar/config.properties");
Vous pouvez également le charger avec un chemin relatif. Si SomeClass
est également dans le paquet com.foo.bar
, alors vous pouvez le charger avec.
InputStream in = SomeClass.class.getResourceAsStream("config.properties");
Notez que les variables Java devraient toujours commencer par une lettre minuscule: config
et non Config
.
Mettre comme champ dans une énumération publique? Vous devez soit stocker le chemin d'accès dans un fichier source .java, soit dans un fichier de propriétés, et la dernière "solution" est simplement stupide. –