Hallo,getResourceAsStream échoue dans un nouvel environnement?
i ont la ligne de code suivante:
InputStream passoloExportFileInputStream = getClass().getClassLoader().getResourceAsStream("/com/thinkplexx/lang/de/general.xml");
et je sais que jar avec com/thinkplexx/lang/de/general.xml est en classpath.
Il a travaillé sous "environnement précédent", qui est maven2 build.
Maintenant, j'évalue maven3 et ça ne marche pas! Je sais que si je change le code à:
InputStream passoloExportFileInputStream = getClass().getClassLoader().getResourceAsStream("com/thinkplexx/lang/de/general.xml");
il fonctionne très bien (je viens enlevé la première barre oblique à partir du chemin de la ressource).
Btw, j'utilise Linux. La première barre oblique dans le chemin signifie normalement "à partir du répertoire racine", donc si cette logique est bonne pour le chargement des ressources java, le premier exemple n'aurait jamais dû marcher !?
Questions: est quelque chose de mal avec le premier exemple de code, à savoir avec /com/ et non com/? Est-ce que c'est juste du mauvais code ou ça veut dire quelque chose de différent?
merci!
La réponse de Devons fonctionne pour moi. Aussi, j'ai trouvé dans http://download.oracle.com/docs/cd/E17476_01/javase/1.5.0/docs/guide/lang/resources.html que: " Les méthodes dans ClassLoader utilisent la chaîne donnée en tant que nom de la ressource sans appliquer de transformation absolue/relative (voir les méthodes de la classe) .Le nom ne doit pas avoir de "/". " –