J'ai un fichier J'ai un problème avec les chemins relatifs pour ces ressources, J'ai donc fait ce que j'ai trouvé dans une autre question Stackoverflow, qui a dit que c'était un moyen valide: p> Malheureusement, cela ne fonctionne pas. P> Des idées? Merci! P> ps: évidemment je ne peux pas utiliser absolu
chemins, et j'aimerais éviter
Variables d'environnement si possible p>
blockQuote> p> jar code> avec des ressources (principalement la configuration pour les caches, la journalisation, etc.) que je veux distribuer.
4 Réponses :
Je dois toujours me casse à travers getresourceastream code> pour faire ce travail. Si "ressource.xml" est dans
org / pablo / opus code>, je pense em> vous voulez ce que vous voulez:
Name.class.getResourceAsStream("org.pablo.opus.resource.xml");
où la ressource.xml a trouvé? Si dans la racine de l'arborescence source, essayez de le préfixer avec /.< p>
Ce n'est pas sur la racine de l'arbre source. C'est dans un paquet
Donc, traitez le nom totalement qualifié comme un chemin absolu, par exemple com.me.and.u.effects.css.
Je stocke habituellement des fichiers et d'autres ressources, puis récupérez-les sous forme d'URL: dans un contexte statique ou non: p> À partir d'une instance. P> Les extraits ci-dessus supposent que la conception est un dossier de haut niveau dans le pot. En général, si le chemin commence par un "/", il suppose un chemin absolu, sinon il est relatif de l'emplacement de la classe. P> p>
Assurez-vous que votre dossier de ressources est répertorié sous forme de dossier source dans vos paramètres de projet. Assurez-vous également que le dossier de ressources est défini sur exporter lorsque vous créez votre bocal.
Vous pouvez ajouter une extension .zip à votre fichier JAR, puis ouvrez-la pour vous assurer que vos ressources sont incluses et à l'emplacement prévu. < / p>
J'utilise toujours des chemins absolus comme celui-ci: p> Lorsque vous utilisez des chemins absolus, "/" est le dossier racine dans le fichier JAR, pas la racine Dossier de la machine hôte. p> p>
En effet, j'ai utilisé la méthode de chemin absolue (JAR) que vous avez décrite et cela a fonctionné! Je ne sais pas pourquoi il n'a pas fait le tour avec le relatif ... mais assez bon est assez bon
Le fichier de ressource est-il dans le même dossier que le fichier de classe? Est-ce une application autonome ou exécutée dans un serveur Web?
C'est dans le même dossier en effet. C'est un pot destiné à être inclus dans une application Web, oui (mais je pense que cela devrait être non pertinent)
Il est pertinent que les règles de recherche de ressources associées à une classe donnée sont mises en œuvre par le chargeur de classe définissant. Donc, votre chargeur de classe de votre application Web pourrait se comporter légèrement différemment sur la base de la mise en œuvre. Juste une pensée.