[java]probleme avec getResource dans un jar

probleme avec getResource dans un jar [java] - Java - Programmation

Marsh Posté le 09-09-2004 à 14:58:44    

Bonjour a tous,
j'ai une appli sous forme de jar et je voudrais utiliser un fichier xslt qui se trouve dans mon archive.
Je fais un getResource comme pour un .jpg mais ça ne marche pas.
voir ci-dessous :
- lancement du jar
- println de l'url donné par getResource pour une l'icone
- println de l'url donné par getResource pour le fichier xslt
- planté à l'utilisation de l'url
 
java -jar wdview.jar
jar:file:/C:/_Java/WdView4/WinInstall/WdView.jar!/com/onera/jeff/wdview/icone.jpg
jar:file:/C:/_Java/WdView4/WinInstall/WdView.jar!/com/onera/jeff/wdview/GetSections.xslt
file:\C:\_Java\WdView4\WinInstall\WdView.jar!\com\onera\jeff\wdview\GetSections.xslt (Syntaxe du nom de fichier, de rÚpertoire ou de volume incorrecte)
java.lang.Exception: MyXmlSectionBox error : java.lang.NullPointerException

 
est ce que je peux récupérer un fichier xslt dans le jar ?
(je n'ai jamais essayé avec autre chose que des images)

Reply

Marsh Posté le 09-09-2004 à 14:58:44   

Reply

Marsh Posté le 09-09-2004 à 15:03:30    

C'est quoi le code que tu utilises pour récupérer le contenu du fichier xslt ? si tu essayes de passer par un File comme le laisse suposer ton log, ca ne peut pas marcher.
 
Il faut que tu fasses des trucs du style  
InputStream streamDuXslt = this.getClass().getRessourceAsStream("/com/onera/jeff/wdview/GetSections.xslt" );


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 09-09-2004 à 15:26:23    

Extra, super, ça marche!!!
tu m'as enlevé une énorme poutre du pied
Milles merci.
 
Juste une précision, quand je récupère une icone:
  setIconImage(Toolkit.getDefaultToolkit().getImage(WdView.class.getResource("icone.jpg" )));
 
ça marche, est ce que c'est le getImage qui sait gérer un File ?
 

Reply

Marsh Posté le 09-09-2004 à 22:48:51    

Là tu passe pas par un File mais par une URL ... L'url est une façon de localiser une ressource très souple :  ca peut être un fichier, une ressource disponible sur internet, un fichier compressé dans un jar, etc ... Cette url permet d'accéder au flux (le InputStream) de façon banalisée en faisant un openConnection (si je me souviens bien).  C'est pour ca que dans le Toolkit ils ont utilisé en entrée une URL pour récupérer une image : à partir d'une URL, ils peuvent récupérer le contenu binaire.
 
Mais dans ton cas, c'est une étape intermédiaire inutile puisque ce qui t'intéresse c'est directement le flux binaire => autant appeler getResourceAsStream() qui retourne un Inputstream plutot que getRessource qui retourne une URL ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-09-2004 à 08:12:32    

:jap:  
Merci pour les précisions, j'ai encore beaucoup à apprendre du Java...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed