Bonjour,
Le problème
Je vous expose un problème assez courant:
Je développe une appli J2EE et lorsque je déploie, j'ai des soucis car la racine pour les chemins d'accès aux fichiers diffère selon que je suis en train de développer sous eclipse ou que je déploie l'appli.
en clair, si je fais:
Code :
- File f=new File("." );
|
mon File ne pointera pas au même endroit si j'exécute à partir d'eclipse que si je déploie sur le serveur d'appli. Or, je ne peux pas me permettre de mettre des chemins absolus.
Le besoin
Je veux donc mettre à disposition quelque part dans mon code une méthode qui me retourne le chemin d'accès de la racine de mon projet, disons le chemin d'accès du répertoire WEB-INF par exemple et ceci, quelque soit le contexte d'exécution de mon appli. J'ai bien des solutions mais plus moches les unes que les autres.
Une fois que j'aurais le chemin d'accès du dossier WEB-INF, il me suffira de définir tous mes chemins d'accès en relatif par rapport à ce dossier.
solution 1
dans une de mes classes, je fais un new File("." ) et je remonte l'arborescence jusqu'à avoir un répertoire ayant pour nom "WEB-INF"
solution 2
je me sers du ClassLoader
Code :
- MaClass.class.getClassLoader().getResource("package/sousPkg/MaClass.class" )
|
et je sais que ça va me faire pointer dans tous les cas sur WEB-INF/classes/package/sousPkg/MaClass.class
Je n'aurais donc plus qu'à remonter de 3 étages pour me situer au dossier WEB-INF
Je voudrais savoir si vous avez des solutions plus propres à proposer, merci d'avance