IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

[Property] fichier .properties classpath


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Par défaut [Property] fichier .properties classpath
    Bonjour,

    je veux utiliser la méthode getProperty pour lire des données dans un fichier de conf. Il semble qu'il faille le chemin absolu du fichier...Or j'aimerai juste mettre un chemin relatif à mon projet... n'y-t-il aucune autre solution que l'utilisation du classLoader ? Car je n'y ai pas compris gd chose

    merci

  2. #2
    Membre éprouvé
    Inscrit en
    Juillet 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2006
    Messages : 74
    Par défaut
    une façon de faire (la moins casse tête à mon avis) peut être de mettre ton fichier de conf au même niveau que ton fichier java (et une fois compilé, le fichier class généré sera dans le même répertoire que ton fichier de conf). ainsi tu n'auras pas à spécifier de chemin absolu, et en indiquant juste le nom de ton fichier, le classloader le cherche directement dans le classpath.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Par défaut
    hum, euh, et si je te dis que ça marche pas chez moi ??
    (j'ai bien vérifié le nom pour éviter une bête faute de frappe)
    Mais vu que mon appli est déployée sur un serveur, il se peut que le classloader soit géré autrement non ?

  4. #4
    Membre chevronné Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Par défaut
    La solution du getResource (et donc du classLoader) est la meilleure solution.

    Elle base sa recherche sur le classpath. Elle recherche le fichier demandé dans tous les jars et répertoires que tu auras mis dans ton classpath.

    Si tu recherches "/lala/lolo.gif" elle va chercher, dans tous ces répertoires et jar, un fichier qui répond à ce motif, en considérant qu'il s'agit d'un chemin absolu, car il commence par un "/". Et si tu cherches "lala/lolo.gif", alors il cherchera à partir de la classe d'appel, en relatif, car il n'y a pas de "/" comme premier caractère ; si ta classe est "org.truc.HelloWorld", alors il cherchera un fichier nommé "/org/truc/HelloWorld/lala/lolo.gif".

    Il existe deux ou trois autres solutions, à ma connaissance.

    Tu peux utiliser les propriétés systèmes user.dir et home.dir. Elles te donnent un répertoire à partir duquel tu peux te construire quelques petits repères.

    Tu peux aussi lancer ton programme java par un script - que ce soit sous windows ou sous linux - et lui passer une propriété système qui lui donne un répertoire de base. Par exemple java -Dbase=/mon/repertoire org.truc.HelloWorld.

    Tu peux également profiter d'une forme de System.getenv, qui te donne accés aux variables du système. Par exemple, sous Linux, $HOME.

    Encore autre chose, tu peux, la première fois que ton programme se lance, demander à l'utilisateur de bien vouloir entrer un répertoire de base, répertoire que tu stockeras dans une java.util.pref.Preference pour ne plus avoir à le redemander.

    Voila...

  5. #5
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Hello,

    Tu peux aussi utiliser la classe ResourceBundle

    Il faut que ton fichier de propiété soit dans ton classpath.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Par défaut
    merci pour toutes vos réponses Je vais étudier la plus adéquates, surement le classloader... Je regrette seulement que ce ne soit pas plus facile d'accès On a tellement l'habitude avec les api java

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/03/2010, 23h48
  2. classpath dans un fichier .properties
    Par skeut dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 17/07/2009, 13h55
  3. Réponses: 0
    Dernier message: 15/07/2009, 15h11
  4. [Classpath] Ajout de fichier properties.. ou pas?
    Par Gueritarish dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 11/03/2008, 11h44
  5. Réponses: 3
    Dernier message: 17/06/2005, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo