Ajout d'un répertoire relatif à Java ClassPath et à l'aide de classloader (). getResourceSstream (“”)

StackOverflow https://stackoverflow.com/questions/842538

Question

Est-il possible d'ajouter un répertoire relatif (c'est-à-dire Foo / Bar / Plugh) au Java ClassPath et d'utiliser

InputStream in = getClassLoader().getResourceAsStream("xyzzy.properties");

Pour récupérer foo / bar / plugh / xyzzy.properties?

Mon chemin de classe ressemble à ceci:

foo.jar;foo/bar/plugh;xyz.jar 

Et je suis en mesure d'utiliser des cours et des ressources à partir de pots FOO et XYZ mais pas du répertoire Plugh. Dans ces cas, in est toujours nul.

Je ne peux pas faire fonctionner cela et je ne sais pas si ce n'est que non pris en charge, je manque quelque chose de subtil ou si je fais quelque chose de mal. Dois-je utiliser un chemin absolu?

Était-ce utile?

La solution

Peut-être que je ne comprends pas ce que vous essayez de faire, mais si vous avez un dossier dans votre chemin de classe, cela signifie que tous les fichiers en dessous devraient également être dans le chemin de classe. Sinon, vous pouvez toujours transmettre chaque fichier .properties sur le chemin de classe.

Mais de toute façon, comme le fichier / dossier qui contient le fichier est dans le chemin de classe, vous devriez simplement pouvoir faire:

InputStream in = new FileInputStream("classpath:xyz.properties")

Et puisque "Foo / Bar / Plugh" est dans le chemin de classe, l'un des endroits où il recherchera XYZ.Properties est dans "Foo / Bar / Plugh".

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top