2009-04-20 10 views
6

J'essaie de charger un fichier de propriétés sans utiliser le chemin réel du fichier. Je l'ai déjà fait sur d'autres applications simples en utilisant:classloader.getSystemResourceAsStream renvoie null

InputStream inputStream = ClassLoader.getSystemResourceAsStream(PROPERTIES_FILE); 
props.load(inputStream); 

Mais cette fois, cela ne fonctionne pas. L'inputStream est null pour une raison quelconque. PROPERTIES_FILE est une constante définie comme "app.properties". J'ai essayé de supprimer l'extension .properties et obtenu les mêmes résultats.

Des idées?

Merci.

+2

Où est situé app.properties? –

Répondre

13

La constante PROPERTIES_FILE devrait inclure le paquet ainsi que le fichier de propriétés (par exemple, « com/some/bibliothèque/file.properties ».

final static String PROPS_FILE = "/com/some/library/file.props"; 
        //The preceding "/" is dependendant on wheterh 
        //you are going to be giving a relative or absolute location 
    InputStream is = YourCurrentClass.class.getResourceAsStream(PROPS_FILE); 
+0

J'ai ajouté les informations de paquetage comme vous l'avez mentionné mais j'ai toujours la même erreur. m faire cet appel est statique si cela aide tout ... – Lancelot

+0

En fait, il y avait une faute de frappe quand j'ai ajouté le nom du paquet. Cette solution a bien fonctionné. Merci! :) – Lancelot

+1

Vous voulez probablement appeler getResourceAsStream sur le chargeur de classe de votre classe. Ou probablement sur la classe de votre classe. –

0

Lorsque getSystemResourceAsStream retours null, cela signifie que la ressource n'a pas été trouvé Assurez-vous que la ressource demandée se trouve réellement sur le chemin de classe à l'emplacement spécifié

Questions connexes