2013-01-08 7 views
2

J'essaie de lire un fichier xsd conservé dans un pot en utilisant le code java conservé dans le même pot. J'utilise le code suivant.Lire un fichier dans un pot à partir du code java présent dans le même pot

URL tmpurl = ClassLoader.getSystemResource("com/abc/filename.xsd"); 

Schema s = schemaFactory.newSchema(tmpurl); 
jaxbUnMarshaller.setSchema(s); 

Il fonctionne très bien quand je le lance comme un projet distinct mais quand je fais un pot, tmpurl est nulle, d'où le setSchema donne une exception de pointeur nul.

Pouvez-vous s'il vous plaît une solution de contournement qui peut le faire fonctionner même dans un fichier jar.

Répondre

4

Hava vous avez essayé?

getClass().getClassLoader().getResource() 

également votre classpath dans le fichier manifeste dans un bocal importe.

S'il vous plaît, jetez un oeil à des réponses acceptées ici:

Class.getResource and ClassLoader.getSystemResource: is there a reason to prefer one to another?

Loading files with ClassLoader

+0

Merci, fonctionne parfaitement, tout ce que vous l'avez dit était tout à fait correct et les liens donnés ont également été utile et instructif. – AurA

Questions connexes