L'accès POT de ressources
J'ai un jar
fichier avec des ressources (principalement de configuration pour les caches, les journaux, etc) que je veux les distribuer.
Je vais avoir un problème avec les chemins relatifs pour ces ressources, donc j'ai fait ce que j'ai trouvé dans un autre stackoverflow question, qui a dit que c'était une façon valide:
ClassInTheSamePackageOfTheResource.class.getResourceAsStream('resource.xml');
Malheureusement cela ne fonctionne pas.
Des idées? Merci!
PS: Évidemment, je ne peux pas utiliser absolue
les chemins, et je voudrais éviter
les variables d'environnement si possible
Est le fichier de ressources dans le même dossier que le fichier de classe? Est-ce une application autonome ou de l'exécution d'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, peu importe)
il est pertinent que les règles pour la recherche de ressources associées à une classe donnée sont mis en œuvre par la définition de la classe loader. Si votre application web du chargeur de classe peuvent se comporter de façon légèrement différente en fonction de l'implémentation. Juste une pensée.
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, peu importe)
il est pertinent que les règles pour la recherche de ressources associées à une classe donnée sont mis en œuvre par la définition de la classe loader. Si votre application web du chargeur de classe peuvent se comporter de façon légèrement différente en fonction de l'implémentation. Juste une pensée.
OriginalL'auteur Pablo Fernandez | 2010-04-14
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que votre dossier de ressources est répertorié comme l'un dossier source dans les paramètres de votre projet. Aussi, assurez-vous que le dossier de ressources est fixé à l'exportation lorsque vous construisez votre bocal.
Vous pouvez ajouter un .zip d'extension de votre fichier jar puis ouvrez-le pour vous assurer que vos ressources sont incluses et à l'emplacement prévu.
J'ai toujours utiliser des chemins absolus comme ceci:
Lorsque vous utilisez des chemins absolus, "/" est le dossier racine dans le fichier jar, pas le dossier racine de la machine hôte.
En effet, j'ai utilisé le (jar) chemin d'accès absolu de la méthode décrite et cela a fonctionné! Ne sais pas pourquoi il n'a pas à faire le truc avec le rapport... mais bon assez, c'est assez bon
OriginalL'auteur Marcus Adams
J'ai toujours de puzzle à travers
getResourceAsStream
pour faire ce travail. Si "resource.xml" est dansorg/pablo/opus
, je pense vous voulez que cela:OriginalL'auteur trashgod
où l'resource.xml trouvé? Si dans la racine de l'arborescence source, essayez de le préfixer avec /.
afin de traiter le nom pleinement qualifié comme un chemin absolu, par exemple com.moi.et.u.des effets.css serait accessible qu' /com/moi/et/u/effets.css
OriginalL'auteur Seffi
J'ai l'habitude de stocker des fichiers et d'autres ressources, puis de les récupérer sous forme d'Url:
Dans un contexte statique, ou autrement:
À partir d'une instance.
Ci-dessus des extraits de supposer que le design est un répertoire de plus haut niveau dans le bocal. En général, si le chemin commence par un "/" il suppose un chemin d'accès absolu, sinon c'est le parent de la classe d'emplacement.
OriginalL'auteur Jason Nichols