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 :

Intervenir en Java sur le PATH


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut Intervenir en Java sur le PATH
    Hello,

    J'ai un programme Java qui appele à un programme C. Celui-ci utilise une DLL externe, qui elle-même utilise d'autres DLL.

    mon prog Java
    ---> mon prog C
    ------> DLL externe
    ---------> autres DLL externes

    J'aimerais que ces DLL ne se trouvent ni dans le répertoire de la DLL externe que j'utilise indirectement, ni dans le PATH défini au niveau système ou utilisateur de session.

    Ma question est donc :
    Est-il possible en Java de modifier le PATH courant, de manière dynamique ?

    Merci.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Apparemment, ça se fait avec la classe ProcessBuilder...

  3. #3
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 692
    Par défaut
    Oui avec la classe ProcessBuilder et sa méthode environement(), tu peux définir des variables d'environnement qui ne seront valide que pour les programmes executés à partir de cet objet.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    La doc Java présente l'exemple suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
     Map<String, String> env = pb.environment();
     env.put("VAR1", "myValue");
     env.remove("OTHERVAR");
     env.put("VAR2", env.get("VAR1") + "suffix");
     pb.directory(new File("myDir"));
     Process p = pb.start();
    Dans la dernière ligne est appelée la fonction start().
    Considérant mon code actuel, ci-dessous, comment insérer cet appel de start() ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Process mCProcess;
    mCProcess = Runtime.getRuntime().exec(API2XML_App + " " + year);
    mCProcess.waitFor();
    Apparemment, Runtime.exec() permet également de préciser un environnement. Du coup, je suis paumé...
    Et après lecture de cette page, je me demande quel est l'intérêt de passer à ProcessBuilder. On dirait que cela permet de récupérer en plus les variables d'environnement système.

    Je précise que c'est pour lancer une application console.

    Merci.

  5. #5
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 692
    Par défaut
    En effet, on peut également utiliser Runtime.exec() pour faire cela.

    ProcessBuilder a été ajouté en java 5.0 pour permettre de gérer tous les paramètre d'exécution d'un processus externe (répertoire courant, variables d'environnement, ...) en un seul objet complet.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    OK, merci !

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

Discussions similaires

  1. Les futurs tutoriels Java sur DVP ?
    Par Ricky81 dans le forum Débats
    Réponses: 65
    Dernier message: 06/01/2012, 02h33
  2. [java sur portable] Compatible ?
    Par Kaor dans le forum Développement Mobile en Java
    Réponses: 12
    Dernier message: 06/07/2006, 12h18
  3. Retrouvez l'équipe Java sur le blog de la rubrique !
    Par Mickael Baron dans le forum Général Java
    Réponses: 0
    Dernier message: 08/12/2004, 10h36
  4. Technologie Java sur les téléphones mobiles
    Par tahiti bob dans le forum Java ME
    Réponses: 6
    Dernier message: 04/12/2004, 13h20
  5. [Info] Developpement en Java Sur pda ?
    Par shamok2 dans le forum Développement Mobile en Java
    Réponses: 7
    Dernier message: 20/11/2004, 22h48

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