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 :

Variable d'environnement & setProperty


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 40
    Points : 21
    Points
    21
    Par défaut Variable d'environnement & setProperty
    Bonjour,

    J'ai un petit souci avec les variables d'environnement sous Windows.

    J'ai lu la FAQ mais je n'ai pas trouvé réponse à mon problème.

    Je souhaite tout "simplement" mettre à jour la variable d'environnement Path :
    Je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String libpath = System.getProperty("java.library.path");
    libpath = libpath + ";titi";
    System.setProperty("java.library.path", libpath);
    Cependant ma variable d'environnement n'est pas mise à jour.

    Des avis sur la question ?

    Cordialement,
    Nicolas

  2. #2
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Les System.getProperty() et System.setProperty() ne correspondent pas aux variables d'environnements du système, mais à des propriétés du programme Java...


    De plus, lorsqu'on change les variables d'environnements d'un programme, cela ne se répercutent que dans les processus fils (chose qu'il faut faire explicitement en Java).


    Pour modifier des variables d'environnements systèmes, il faut passer par du code natif et des fonctions spécifique de l'OS hôte (et encore je ne suis pas sûr que ce soit possible).


    Pourquoi as-tu besoin de modifier cela ?

    a++

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 40
    Points : 21
    Points
    21
    Par défaut
    Merci pour ta réponse.

    J'ai besoin de cela car dans mon Applet j'ai besoin de charger une série de dll (alors que sous linux je n'en ai besoin que d'une ).

    Si je n'ajoute pas mon dossier à la variable d'environnement path, il m'indique qu'il ne trouve pas une dll. (cf http://www.java-forum.org/allgemeine...zugreifen.html).

    Sais tu comment je peux arranger cela ?

    Nicolas

  4. #4
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Ok : donc c'est bien les propriété java que tu veux changer...

    Le problème c'est qu'il y a de forte chance que la valeur soit lu avant que tu ne la change.



    Si tu connais le chemin d'installation de cette librairie, tu peux peut-être remplacer System.loadLibrary() par System.load(). Ce dernier à l'avantage d'attendre un chemin de fichier complet (par contre c'est OS-spécifique mais je pense que tu dois déjà gérer cela)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String path = "C:\\titi\\";
    // System.loadLibrary("nspr4");
    System.load( path + "nspr4.dll" );

    a++

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 40
    Points : 21
    Points
    21
    Par défaut
    Effectivement, je gère l'OS.

    J'obtiens l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UnsatisfiedLinkError: no jss4 in java.library.path
    pourtant jss4.dll fait partie des dll que je charge

    As-tu une idée ?

    Nicolas

  6. #6
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    En la chargeant avec System.load() ou System.loadLibrary() ?

    a++

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

Discussions similaires

  1. [langage] Création de variable d'environnements
    Par Smaugg dans le forum Langage
    Réponses: 20
    Dernier message: 26/04/2004, 09h32
  2. [BES] Création d'une variable d'environnement
    Par NGI80 dans le forum Autres
    Réponses: 2
    Dernier message: 17/10/2002, 07h31
  3. nom de fichier et variables d'environnement
    Par joebarthib dans le forum Langage
    Réponses: 2
    Dernier message: 18/07/2002, 15h21
  4. Réponses: 4
    Dernier message: 18/07/2002, 13h32

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