Java Language Chargement d'une ressource de même nom à partir de plusieurs JAR


Exemple

Une ressource ayant le même chemin et le même nom peut exister dans plusieurs fichiers JAR sur le chemin de classe. Les cas courants sont des ressources suivant une convention ou faisant partie d'une spécification d'emballage. Des exemples de telles ressources sont

  • META-INF / MANIFEST.MF
  • META-INF / beans.xml (Spéc. CDI)
  • Propriétés ServiceLoader contenant des fournisseurs d'implémentation

Pour accéder à toutes ces ressources dans des fichiers JAR différents, il faut utiliser un ClassLoader, qui possède une méthode pour cela. L' Enumeration renvoyée peut être facilement convertie en une List utilisant une fonction Collections.

Enumeration<URL> resEnum = MyClass.class.getClassLoader().getResources("META-INF/MANIFEST.MF");
ArrayList<URL> resources = Collections.list(resEnum);