où placer les fichiers .properties dans un projet Eclipse?

J’ai un test de fichier de propriétés très simple que j’essaye de faire fonctionner:

package com.example.test; import java.util.ResourceBundle; public class TestProperties { public static void main(Ssortingng[] args) { ResourceBundle myResources = ResourceBundle.getBundle("TestProperties"); for (Ssortingng s : myResources.keySet()) { System.out.println(s); } } } 

et TestProperties.properties dans le même répertoire:

 something=this is something something.else=this is something else 

que j’ai également enregistré sous TestProperties_en_US.properties

Lorsque j’exécute TestProperties.java à partir d’Eclipse, le fichier de propriétés ne peut pas être trouvé:

 java.util.MissingResourceException: Can't find bundle for base name TestProperties, locale en_US 

Est-ce que je fais quelque chose de mal?

Placez-le à la racine de l’un de vos chemins sources ou qualifiez complètement le nom de la ressource dans l’appel à getBundle , par exemple

 ResourceBundle myResources = ResourceBundle.getBundle("com.example.test.TestProperties"); 

Consultez la documentation de ResourceBundle.getBundle(Ssortingng, Locale, ClassLoader) pour plus d’informations.

Ne mettez PAS vos fichiers de propriétés dans votre dossier src! Évidemment, cela fonctionne, mais au fond, ce n’est PAS la façon dont vous devriez aborder vos problèmes. Créez un nouveau dossier dans votre projet, par exemple un dossier “Ressources”, ajoutez-le au chemin de classe dans les propriétés du projet et placez-y tous les fichiers autres que .java.

Je viens juste d’essayer de résoudre ce problème également. J’ai constaté que vous devez actualiser la liste de fichiers d’Eclipse avant d’essayer de lancer votre projet. Ensuite, vous pouvez avoir vos fichiers dans le répertoire de base et les utiliser normalement.

placez le fichier TestProperties_en_US.properties (propery) dans le dossier src, puis exécutez le programme à exécuter

Aha, merci beaucoup. Cela fonctionne aussi.

 package com.example.test; import java.util.ResourceBundle; public class TestProperties { public static void main(Ssortingng[] args) { ResourceBundle myResources = ResourceBundle.getBundle(TestProperties.class.getCanonicalName()); for (Ssortingng s : myResources.keySet()) { System.out.println(s); } } }