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

Langage Java Discussion :

Comment indiquer où se trouvent les .properties?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Par défaut Comment indiquer où se trouvent les .properties?
    Bonjour,

    Mon souci est que lorsqu'on crée les .properties (par exemple avec Eclipse avec Externalise strings) ils sont placés dans le même dossier que les .class. Or j'aimerais bien les placer dans un dossier spécial ressources ou properties.

    Voilà l'arborescence souhaitée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    /
    |-src  (dossier sources avec les .java)
    |   |-com/test/Bonjour.java
    |-WEB-INF
        |-classes
        |    |-com/test/Bonjour.class
        |-properties
             |-messages.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    package com.test;
     
    import java.util.ResourceBundle;
     
    public class Bonjour {
     
    	private static final String BUNDLE_NAME = "com.test.messages"; 
    	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
     
    	public static String getString(String key){
    			return RESOURCE_BUNDLE.getString(key);
    	}
     
    	public static void main(String[] args){
    		System.out.println(Bonjour.getString("0")); 
    	}
     
    }
    Comment indiquer qu'il faut chercher les .properties dans le dossier /WEB-INF/properties

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il est préférable de les laisser avec les sources puisqu'un fichier properties est vu comme une classe par les bundles (d'ailleurs on peut très bien utiliser une classe). Ils sont donc charger via le classpath comme les classes...


    Si tu les mets dans un répertoire à part il faudra gérer toi même le chargement, et le problème c'est que dans une application serveur tu as besoin du ServletContext pour récupérer le chemin relatif au projet via la méthode getRealPath()... ce qui est peu pratique...


    Donc la solution la plus simple consiste à les mettre avec les classes...
    A la rigueur je te conseillerais juste de faire un package spécial contenant uniquement tes fichiers properties...


    a++

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 905
    Billets dans le blog
    54
    Par défaut
    Le mecanisme de ResourceBundle.getBundle() se base sur ClassLoader.getResource() qui resout les noms de fichiers sur le CLASSPATH, il suffit donc, a priori, d'inclure le repertoire qui les contient (ou pour etre plus precis qui contient la racine de leur chemin d'acces) dans le CLASSPATH du projet/de l'application.

    EDIT - moi j'ai toujours eut des problemes avec les '.' dans les chemins d'acces et j'ai toujours du les remplacer par des '/' (ce qui est dommage quand on doit faire du refactoring puisque ca oblige a repasser apres l'IDE).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Réponses: 14
    Dernier message: 28/05/2013, 10h52
  2. Insert-Select Query - Comment indiquer les serveurs
    Par acheo dans le forum Développement
    Réponses: 14
    Dernier message: 26/04/2011, 17h08
  3. [Setter Property="FontFamily"] Comment indiquer une Police embarquée ?
    Par neguib dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 19/11/2008, 10h51
  4. Réponses: 2
    Dernier message: 29/04/2008, 14h16
  5. Réponses: 4
    Dernier message: 10/07/2006, 20h55

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