2016-03-29 1 views
1

Je travaille sur une machine Ubuntu 14.0.4.System.getenv ("TEST_HOME") renvoie null

Je TEST_HOME une exporté variable dans mon fichier .bashrc en utilisant

export TEST_HOME=/home/dev/code/test 

Quand j'ai essayé echo $TEST_HOME du terminal, il est retourné /home/dev/code/test

Jusqu'à présent, si bon.

Lorsque je tente de code Java:

String value = System.getenv("TEST_HOME");

value est nulle.

Ai-je raté quelque chose ici?

+0

Pour que cette variable soit dans l'environnement de Java, vous devrez démarrer le processus Java à partir d'un shell où vous avez ce jeu de variables. As tu? – folkol

+0

@folkol Je n'ai pas exporté cette variable dans un shell/terminal particulier. J'ai ajouté son entrée dans '.bashrc' –

+0

fermez et rouvrez votre terminal pour actualiser les changements définis .bashrc – vikingsteve

Répondre

3

La mention de la variable dans .bashrc ne fonctionnera que pour les programmes démarrés à partir du shell. Pour les variables d'environnement à l'échelle du système, indiquez-le au /etc/environment.

Référez Ubuntu Environment variables

+0

actuellement seule la variable path est présente dans mon '/ etc/environment'. Ai-je besoin d'exporter TEST_HOME =/home/dev/code/test dans '/ etc/environment'? –

+0

oui. Les autres applications ne peuvent lire que ces variables. – Rima

+0

J'ai ajouté 'export TEST_HOME =/home/dev/code/test' dans'/etc/environment'. Maintenant, 'echo $ TEST_HOME' ne retourne rien (j'ai redémarré le terminal), même nulle à partir du code Java (j'ai redémarré eclipse) Dois-je redémarrer la machine pour cela? –

1

.bashrc fixerait la variable d'environnement que pour le shell bash. Pour le définir à l'échelle du système, placez-le dans le fichier /etc/environment.

Puisque vous utilisez eclipse, et qu'il ne s'exécute pas dans shell bash, il n'obtient pas la variable que vous définissez. Si vous exécutez votre programme en utilisant la ligne de commande Java dans votre terminal, il devrait l'obtenir.

Définir la variable dans /etc/environment la rendrait disponible pour l'éclipse. Vous devrez redémarrer votre ordinateur une fois que vous aurez mis à jour /etc/environment.