[Java]Utiliser des ressources d'un jar à partir d'un autre jar

Utiliser des ressources d'un jar à partir d'un autre jar [Java] - Java - Programmation

Marsh Posté le 14-07-2004 à 13:24:18    

Bonjour,
 
J'ai un souci pour utiliser des ressource d'un jar, des .png par exemple, à partir d'un autre jar.
 
Dans mon code, pour loader une image, j'utilise :
_image = ImageIO.read(new File(Application.class.getResource("image/O002.png" ).getFile()));
Ce code fait partie du deuxième jar. Le premier jar que j'utilise pour lancer l'application contient la ressource.
 
Sous Eclipse, y'a pas de problèmes, seulement quand je lance à partir du jar, il ne trouve pas le fichier.
 
Merci d'avance pour votre aide


Message édité par CliffBurton le 14-07-2004 à 15:01:53
Reply

Marsh Posté le 14-07-2004 à 13:24:18   

Reply

Marsh Posté le 14-07-2004 à 15:08:19    

Mettre un slash avant image ...
 

Code :
  1. Application.class.getResource("/image/O002.png" );


 
Et fait des checks au lieu d'avoir 50 appels imbriqués (i.e. vérifie que la ressource est ok avant d'intialiser ton file).


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-07-2004 à 15:49:56    

Merci de ta réponse.
Je viens d'essayer avec le slash, et ça me plante une erreur:
java.lang.NullPointerException
sur cette ligne.
Je vais essayer d'être plus précis. En fait l'appli contient deux packages:
 
/org/tralala/truc/monappli/client
/org/tralala/truc/monappli/common
 
En fait le client.jar est le jar qui contient la main class.  Et common.jar utilise des ressources dans client.jar.
Au debut je faisais tout avec :
_image = ImageIO.read(new File("./image/O013.png" ));
 
Avec cette méthode, donc au moment de l'execution du jar, il ne trouvait pas la classe. Les fichiers étaient à la racine du projet. Je n'incluais pas les fichiers dans le manifest, pensant qu'Eclipse le faisait à ma place, ce qui n'est pas le cas. Est ce que j'aurais dû créer la liste de fichier dans le manifest?
 
Puis après je suis passé par la méthode getRessources. Et j'ai mis les fichiers dans :
/org/tralala/truc/monappli/client/image
J'ai fait le .jar avec client et client/image. Et là je bloque.
Est-ce qu'il vaut mieux utiliser cette méthode quand on veut utiliser des ressources contenus dans un jar externe (mais dans le même package), ou alors j'ai tout faux depuis le début :-) ?

Reply

Marsh Posté le 14-07-2004 à 15:53:43    

Bin alors tu fais  
 

Code :
  1. Application.class.getResource("/org/tralala/truc/monappli/client/image/0002.png" );


 
tout dépend où se trouve ton fichier dans ta structure. Ca ne change rien qu'il soit dans un jar ou dans l'autre, du moment qu'il dans le classpaht et que tu ne joues pas avec des classloader différent.


Message édité par darklord le 14-07-2004 à 15:53:59

---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-07-2004 à 16:28:14    

J'ai essayé comme tu me l'as indiqué, mais à l'execution j'ai droit à :
FileNotFoundException: file:\E:\RepDeTest\common.jar!\org\tralala\truc\monappli\client\image\0002.png
(Syntaxe du nom de fichier, de répertoire ou de volume incorrecte)  
:-|

Reply

Marsh Posté le 14-07-2004 à 21:00:21    

DarkLord a écrit :

Bin alors tu fais  
 

Code :
  1. Application.class.getResource("/org/tralala/truc/monappli/client/image/0002.png" );


 
tout dépend où se trouve ton fichier dans ta structure. Ca ne change rien qu'il soit dans un jar ou dans l'autre, du moment qu'il dans le classpaht et que tu ne joues pas avec des classloader différent.

quoted [:mlc]
ptain, forcément qu'il peut pas instancier un File qui est dans un jar :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 14-07-2004 à 21:00:36    

CliffBurton a écrit :

J'ai essayé comme tu me l'as indiqué, mais à l'execution j'ai droit à :
FileNotFoundException: file:\E:\RepDeTest\common.jar!\org\tralala\truc\monappli\client\image\0002.png
(Syntaxe du nom de fichier, de répertoire ou de volume incorrecte)  
:-|

non


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 14-07-2004 à 23:23:30    

oh putain j'ai pas fait attention au new file moi quel con [:kiki]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 16-07-2004 à 10:06:05    


Heu pkoi non?  :??:

Reply

Marsh Posté le 16-07-2004 à 10:07:44    

En fait, j'ai tout faux depuis le début.  
Je peux pas me servir de File si j'ai l'intention de les appeller depuis un Jar. Il faut passer par le getRessource et me servir des Stream, c'est ça?


Message édité par CliffBurton le 16-07-2004 à 10:08:04
Reply

Marsh Posté le 16-07-2004 à 10:07:44   

Reply

Marsh Posté le 16-07-2004 à 13:56:09    

CliffBurton a écrit :

Heu pkoi non?  :??:

ben parce que t'as pas fait comme il t'a dit [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Sujets relatifs:

Leave a Replay

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