Comment puis-je lire un fichier de ressources à partir d'un fichier jar Java?

J'essaye d'accéder à un fichier XML dans un fichier jar, à partir d'un autre pot qui s'exécute comme une application de bureau. Je peux obtenir l'URL du fichier que j'ai besoin, mais quand je passe que pour un FileReader (comme une Chaîne de caractères), je reçois un FileNotFoundException en disant: "Le nom de fichier, le nom du répertoire ou de la syntaxe du nom de volume est incorrecte."

Comme un point de référence, je n'ai aucun problème de lecture de l'image des ressources à partir de la même bocal, en passant l'URL d'une ImageIcon constructeur. Cela semble indiquer que la méthode que j'utilise pour obtenir l'URL est correcte.

URL url = getClass().getResource("/xxx/xxx/xxx/services.xml");
ServicesLoader jsl = new ServicesLoader( url.toString() );

À l'intérieur de la ServicesLoader classe j'ai

XMLReader xr = XMLReaderFactory.createXMLReader();
xr.setContentHandler( this );
xr.setErrorHandler( this );
xr.parse( new InputSource( new FileReader( filename )));

Quel est le problème avec l'utilisation de cette technique pour lire le fichier XML?

  • Pouvez-vous poster le code de travail?