Chargement d'un fichier de configuration depuis le classpath

Je suis en train de faire mon application Java facile à déployer sur d'autres ordinateurs et suis en train d'écrire un script ant de le faire, c'est d'aller bien.

Je vais avoir des problèmes pour charger les ressources qui sont répertoriés dans le classpath nommé dans le fichier manifest du jar.

Structure de dossier ressemble à ceci:

/MyProgram.jar
/lib/<dependencies>
/config/configuration.xml

Je ne peux pas pour la vie de me l'accès à l'configuration.xml fichier en utilisant le chargeur de classe. Elle, ainsi que toutes les dépendances sont explicitement mentionné dans le Chemin de Classe d'entrée pour le fichier manifest.

J'ai essayé de nombreuses variantes suivantes:

this.xml = Thread.currentThread().getContextClassLoader()
                 .getResourceAsStream(xmlName);

this.xml = this.getClass().getResourceAsStream(xmlName);

Avec xmlName comme une chaîne de toutes les valeurs suivantes:

"config/configuration.xml"
"configuration.xml"
"config.configuration.xml"

Liées à cela, j'ai aussi un log4j.les propriétés de fichier dans le répertoire config. Comment puis-je obtenir log4j pour le ramasser? Autres références dire qu'il a juste besoin d'être dans le classpath, et il est explicitement nommé dans le bocal le fichier de manifeste. Quelqu'un peut me pointer dans la bonne direction?

Mise à jour:

Voici les entrées réelles de Class-Path:

Class-Path: <snip dependencies> config/configuration.xml config/log4j.properties

OriginalL'auteur Collin | 2011-01-27