path relatif entre package et images
Le
yvon.thoravalNO-SPAM
j'ai un ceratins nombre de sous-dossiers dans mon dossier images.
pour l'instant j'appelle les images depuis le package "yt.ui.*" donc mon
arborescence est ainsi :
yt/
dbms/
*.java
sortable/
*.java
tables/
*.java
tests/
*.java
ui/
*.java
images/
flags/
vineplants/
tables/
manage/
donc, charger une image depuis yt.ui.ma_classe se fait par :
<code>
String imgLocation = "images/tables/" + imageName + ".gif";
java.net.URL imageURL = getClass().getResource(imgLocation);
</code>
Avec cette arborescence j'ai deux pbs :
- si je veux accéder à une image dans yt.ui.images.flags depuis
yt.sortable.ma_classe comment est-ce que je fait ?
- je préférerait avoir deux jars l'un "macave.jar" incluant toutes les
classes et l'autre "images.jar" incluant toutes les images, les deux
jars étant placés dans le même répertoire lib/. Dans ce cas quelle
imgLocation dois-je utiliser ? (j'ai essayé "/images/tables/" +
imageName + ".gif" MAIS la resource n'est pas trouvée)
--
yt
pour l'instant j'appelle les images depuis le package "yt.ui.*" donc mon
arborescence est ainsi :
yt/
dbms/
*.java
sortable/
*.java
tables/
*.java
tests/
*.java
ui/
*.java
images/
flags/
vineplants/
tables/
manage/
donc, charger une image depuis yt.ui.ma_classe se fait par :
<code>
String imgLocation = "images/tables/" + imageName + ".gif";
java.net.URL imageURL = getClass().getResource(imgLocation);
</code>
Avec cette arborescence j'ai deux pbs :
- si je veux accéder à une image dans yt.ui.images.flags depuis
yt.sortable.ma_classe comment est-ce que je fait ?
- je préférerait avoir deux jars l'un "macave.jar" incluant toutes les
classes et l'autre "images.jar" incluant toutes les images, les deux
jars étant placés dans le même répertoire lib/. Dans ce cas quelle
imgLocation dois-je utiliser ? (j'ai essayé "/images/tables/" +
imageName + ".gif" MAIS la resource n'est pas trouvée)
--
yt

Poser une question


soit complet:
<code>
String imgLocation = "/yt/ui/images/flags/" + imageName + ".gif";
java.net.URL imageURL = getClass().getResource(imgLocation);
</code>
Pour les jars, je n'ai pas d'expérience, mais je pense que le fait que les
fichiers soient dans deux jars différents ne devrait rien changer. Ce qui
compte, c'est les noms des packages. Ils doivent être les mêmes dans les
deux jars. (penser à les mettre dans le classpath...)
"Yvon Thoraval" news:1gkrjn7.10t1u071qt3db1N%
OK, merci, ça roule, mais question annexe, si par exemple il me manque
une image dans mon images.jar est-ce que je peux la mettre dans le
dossier lib/ ainsi :
images/
path/to/
mon_image_manquante.gif
??? utile dans la période de mise au .
--
yt
fichiers qui sont dans le classpath. Après, un chemin dans le classpath (ex
com.mycomp.jolipackage) peut être dispersé dans plusieurs jars ou
répertoires. (sauf effort pour l'empêcher, comme les jars sealed...) C'est
vrai pour toutes les ressources, et en particulier les fichiers de classes
qui sont accédés comme n'importe quelle ressource.
Le dossier lib n'a rien de particulier. Il est ou pas dans le classpath.
Dans le cas d'application web j2ee/servlet, les jars dans le répertoire
WEB-INF/lib et les classes des sou-répertoires de WEB-INF/classes sont
automatiquement ajoutés au classpath au chargement de l'application. C'est
un cas particulier.
"Yvon Thoraval" news:1gkrsee.177we5nlwkayiN%
OK, merci, ça roule pour moi, maintenant...
--
yt