2010-10-18 4 views
4

Est-ce que quelqu'un sait comment accéder aux variables d'environnement de l'environnement shell standard dans Java? J'utilise la classe ProcessBuilder et je dois spécifier des variables d'environnement spécifiques utilisées dans un script shell que je suis en train d'exécuter, ces variables existent dans l'environnement shell standard.Variables d'environnement shell d'accès en Java

L'accès à l'environnement ProcessBuilder ne fonctionne pas.

Répondre

9

Vous pouvez obtenir les variables d'environnement qui existaient lorsque votre programme a été créé par System.getenv():

http://download.oracle.com/javase/tutorial/essential/environment/env.html

Lorsqu'une application Java utilise un objet ProcessBuilder pour créer un nouveau processus, le L'ensemble de variables d'environnement par défaut transmis au nouveau processus est le même que celui fourni au processus de la machine virtuelle de l'application. L'application peut modifier cet ensemble à l'aide de ProcessBuilder.environment.

Il semblerait que votre processus fils devrait automatiquement utiliser votre environnement.

+0

J'ai fatigué ce type d'approche - voir commentaire ci-dessus. – dominic

+0

@denis, comment votre processus a-t-il démarré? – dsolimano

+0

Quelle version de Java utilisez-vous? –

0
processBuilder.environment().get("variablename"); 
+0

Non ça ne marche pas, j'ai imprimé toutes les variables dans l'environnement du Process Builder et celles que je cherche sont absentes. Cependant, lorsque vous tapez env dans le terminal, ils sont présents, pouvez-vous rendre compte de cela? – dominic

+1

avez-vous lancé l'application Java à partir du même terminal? – dogbane