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

avec Java Discussion :

.properties Récupérer une variable d'environnement


Sujet :

avec Java

  1. #1
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 153
    Points : 79
    Points
    79
    Par défaut .properties Récupérer une variable d'environnement
    Bonsoir à tous

    Débutant en Java, je me heurte à la substitution de variables d'environnement à l'intérieur d'un .properties
    En utilisant ceci comme modèle :

    Apres avoir verifier par echo que la variable est renseignée, connue, ...

    Le script qui lance la ligne de commande java

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -DAdh=%ADHERENT% -Xmx768m -classpath %SOURCE_JAR%\;%SOURCE_JAR%\ListDocInstance.jar ListDocInstance ListDocInstance.properties
    Le .properties contient

    Et c'est là, c'est littéralement "${Adh}" qui est récupéré, et non "ZX"
    Où couille-je ?
    Merci d'avance

    p.s. Je croyais que c'était log4j qui gére les .properties, mais il semble que ce ne soit pas le cas ...

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 995
    Points
    7 995
    Par défaut
    Tu ne couilles nulle part.

    Le comportement est tout a fait normal.

    Comment java pourrais-t-il savoir qu'il doit faire une substitution lors de la lecture d'un fichier properties en se référant variables système ?

  3. #3
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 153
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Tu ne couilles nulle part.
    Le comportement est tout a fait normal.
    Comment java pourrais-t-il savoir qu'il doit faire une substitution lors de la lecture d'un fichier properties en se référant variables système ?
    Bon, tant pis.
    Je vais scripter pour générer les .properties pour chacune des plateformes ...
    Merci qd meme !

  4. #4
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 153
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Comment java pourrais-t-il savoir qu'il doit faire une substitution lors de la lecture d'un fichier properties en se référant variables système ?
    En cherchant sur la toile, j'ai trouvé des solutions de substitution dans les .properties, mais lus par log4j, pas ceux lus cruement par le code ...
    Donc, j'ai émis l'hypothèse que, peut-être, cela était possible en dehors de log4j.

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 995
    Points
    7 995
    Par défaut
    Bah faut dire que tu n'expliques pas comment tu lis/ecris tes fichiers properties.

    Un fichier properties en java en general se manipule avec la classe Properties. Je vois pas trop ce que log4j vient faire la dedans entres nous. (mais je ne suis pas au courant de tout non plus

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 565
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 565
    Points : 21 630
    Points
    21 630
    Par défaut
    Citation Envoyé par bmayer Voir le message
    Donc, j'ai émis l'hypothèse que, peut-être, cela était possible en dehors de log4j.
    Bah log4j a été fait par des gens, hein, c'est pas une ressource unique qu'on a trouvé sur Terre et décidé de l'utiliser pour ses capacités uniques. N'importe qui d'autre peut décider d'appliquer les mêmes traitements aux .properties que le fait log4j.
    De même que si tu trouves un nombre dans un .properties, tu peux le multiplier par deux si t'en as envie, eh ben, si tu trouves un truc qui ressemble à ${MACHIN}, tu peux le remplacer par la valeur d'une variable MACHIN si t'en as envie. Le truc c'est que personne le fera à ta place.

    ... Enfin personne, c'est vite dit : en fait la bibliothèque tierce Apache Commons Configuration fait le plus gros du boulot pour toi. Mais il faut la prendre, l'installer et t'en servir.

  7. #7
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 153
    Points : 79
    Points
    79
    Par défaut
    C'est un lot d'outils réalisés par un prestataire.
    N'étant pas programmeur Java, je préfère ne pas y toucher, d'autant que ça tourne.
    Il y a juste un problème d'industrialisation ; Le fichier de paramétrage (le .properties) comporte le ~~~nom machine, je ne vais pas éditer autant de .properties qu'il n'y a de machines, autant utiliser l'info qui se trouve dans des variables d'environnement.
    L'exécution d'un outil trace ses actions, en faisant des écritures dans un fichier (.log), la gestion de ceci se fait par log4j.
    Pour que log4j fonctionne comme attendu, par ex. que le fichier de sortie soit à un endroit précis, log4j récupère son paramétrage dans un .properties.

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 565
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 565
    Points : 21 630
    Points
    21 630
    Par défaut
    Oui, on sait, log4j a programmé ce genre de post-processeur.
    Tu pourrais en utiliser un semblable, mais si tu ne peux pas toucher au code, ça n'arrivera pas, c'est tout.

    Après, rien ne t'empêche de faire un pré-processeur en amont, en dehors du code de l'appli, avant de la déployer.

  9. #9
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 153
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Après, rien ne t'empêche de faire un pré-processeur en amont, en dehors du code de l'appli, avant de la déployer.
    C'est tout à fait ce que je vais faire, du scripting pour construire les .properties à la volée, avant exécution. Merci Thelvin.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer une variable d'environnement Java
    Par Anack dans le forum JSF
    Réponses: 2
    Dernier message: 01/06/2011, 11h07
  2. Réponses: 3
    Dernier message: 18/12/2008, 07h29
  3. Récupérer une variable d'environnement Eclipse
    Par Angelinsky7 dans le forum Eclipse Platform
    Réponses: 18
    Dernier message: 30/04/2008, 11h23
  4. récupérer une variable d'environnement
    Par captainamerica75 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 04/06/2007, 16h25

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