L'accès aux ressources à partir d'un autre fichier jar

J'ai une structure simple: Un fichier jar qui contient un lot de données et d'un fichier jar, qui exécute un service en utilisant les données. Afin de rendre les données facile à remplacer, je les ai séparés, et service.jar s'classpath contient le répertoire qui data.jar est dans.

Dans service.jar, j'utilise getResource pour charger les fichiers de données. Cela fonctionne si les fichiers de données sont directement dans le dossier, mais ne parvient pas quand ils sont à l'intérieur data.jar;

D'échec:

all
+ globalclasspath
| + data.jar
|   + mine.properties
+ daemons
  + service.jar

jsvc -cp globalclasspath:daemons/service.jar (...)

MyClass.class.getClassLoader( ).getResource( "mine.properties" ); //<-- null

Mais cela fonctionne:

all
+ globalclasspath
| + mine.properties
+ daemons
  + service.jar

jsvc -cp globalclasspath:daemons/service.jar (...)

MyClass.class.getClassLoader( ).getResource( "mine.properties" ); //<-- not null

Je ne veux pas changer le classpath (sauf si je peux le changer pour quelque chose de générique, qui ne dépend pas du nom du fichier jar), mais je suis très bien avec l'évolution de la getResource chaîne (j'ai essayé de données //la mine.propriétés et /données.jar/mine.propriétés en vain). Est-il un changement que je peux faire en sorte que les ressources peuvent être chargés à partir du pot?

InformationsquelleAutor Dave | 2013-11-22