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 :

Accès aux variables d’environnement


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Coach Agile
    Inscrit en
    Décembre 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Coach Agile

    Informations forums :
    Inscription : Décembre 2005
    Messages : 316
    Par défaut Accès aux variables d’environnement
    Bonjour,

    La FAQ indique que pour accéder aux variables d’environnement, il faut faire appel à la fonction System.getProperty() qui fonctionne effectivement très bien pour de propriétés telles que "user.dir", "java.home".
    Cependant, ce n’est pas vraiment dans ce sens que je souhaite récupérer aux « variables d’environnement ».
    Personnellement, je souhaite accéder aux variables définies dans mon environnement par des commandes SET (variable PATH par exemple).
    Je pensais pouvoir utiliser System.getenv("PATH"), mais à l’exécution, j’ai le droit à une belle exception :
    getenv no longer supported, use properties and -D instead: PATH
    Là, on en est plus au simple signalement.

    Quelqu’un pourrait m’éclairer ?

    Je précise tout de même qu’à terme, ce n’est pas vraiment la variable PATH qui m’intéresse, mais une variable définie de la même manière.

    Merci,
    Chris.

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Bonjour,

    Autant que je sache, il n'est effectivement plus possible d'accéder aux variables d'environnement OS depuis Java et il faut bien passer par les variables d'environnement Java dans ta commande qui lance la JVM. Exemple Unix :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -Dos.path=$PATH ...
    et récupérer System.getProperty("os.path"). T'as pas trop d'autres solutions

  3. #3
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Sinon, tu dois avoir la possibilité de faire du JNI et écrire une librairie en C qui va lire la variable d'environnement OS désirée, mais c'est pas forcément bien portable comme solution.

  4. #4
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Au pire tu passes par Runtime.exec avec un echo ...

    c'est bof mais ça dépanne.

    Par contre il me semble (enfin je suis sûr) que ce genre de question à été posée plein de fois ... et il me semble que j'avais déjà répondu un truc du genre ... ce à quoi adiGuba avait répondu un truc plutôt pas mal si je me souviens bien ...

    Bref, fais une recherche tu trouveras certainement la bonne réponse

  5. #5
    Membre éclairé

    Profil pro
    Coach Agile
    Inscrit en
    Décembre 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Coach Agile

    Informations forums :
    Inscription : Décembre 2005
    Messages : 316
    Par défaut
    Je vous remercie pour vos réponses.
    Face à ces éléments peut encourageant, je vais partir sur une solution plus facile (bien que pas nécessairement plus belle) : c’est mon script d’appel qui me passera les variables d’environnement en paramètre (dans ma ligne de commande).

    de in :
    Par contre il me semble (enfin je suis sûr) que ce genre de question à été posée plein de fois ... et il me semble que j'avais déjà répondu un truc du genre ... ce à quoi adiGuba avait répondu un truc plutôt pas mal si je me souviens bien ...
    J’ai effectivement fait une recherche avant de poster. Cependant, le problème de la recherche par mots clef, c’est que l’on n’utilise pas toujours les bons.
    Sinon, je dois admettre que vous avez des échanges très intéressant avec adiGuba.

    Merci à vous deux,
    Chris.

  6. #6
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 911
    Billets dans le blog
    54
    Par défaut
    Mais quelle JVM utilises-tu ? Ce code ne me pose aucun probleme en 1.5 et 1.6. Apres il me semble me souvenir que cette methode etait depreciee dans la 1.4 (une grosse mega bourde de Sun).

    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
    19
    package test;
     
    import java.util.*;
     
    /**
     */
    public class TestEnv {
      /** Program entry point.
       * @param args Arguments from the command line.
       */
      public static void main(String ...args) {
        Map<String, String> env = System.getenv();
        for (Map.Entry<String, String> entry : env.entrySet()) {
          System.out.println(entry.getKey() + "\t" + entry.getValue());
        }
        System.out.println();
        System.out.println("PATH\t" + System.getenv("PATH"));
      }
    }
    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

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

Discussions similaires

  1. [FLASH MX] Accès aux variables
    Par renofx1 dans le forum Flash
    Réponses: 4
    Dernier message: 21/12/2005, 15h30
  2. Acces aux variables d'une DLL
    Par abignon dans le forum MFC
    Réponses: 1
    Dernier message: 08/09/2005, 14h29
  3. [C#] Accès aux variables Session
    Par kalan dans le forum ASP.NET
    Réponses: 9
    Dernier message: 31/08/2005, 16h40
  4. [FLASH MX2004] [AS2] Accès aux variables d'une classe
    Par stailer dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 17/07/2005, 12h58
  5. [Language]Accès aux variables
    Par Adaemon dans le forum Langage
    Réponses: 12
    Dernier message: 27/04/2005, 14h17

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