Comment puis-je obtenir la valeur de la variable système qui est présente dans
MyComputer -> Properties -> Advanced -> Environment Variables -> System Variables
à Java?
Éditer
J'ai utilisé la System.getenv()
méthode.
C'est la valeur d'impression si je donne
System.out.println(System.getenv("JAVA_HOME"));
et il montre la null
valeur si j'essaye la même chose pour la variable système créée par moi
System.out.println(System.getenv("DBE"));
Réponses:
Utilisez la
System.getenv(String)
méthode en passant le nom de la variable à lire.la source
Pour clarifier, les variables système sont les mêmes que les variables d'environnement. Les variables d'environnement utilisateur sont définies par utilisateur et sont différentes chaque fois qu'un utilisateur différent se connecte. Les variables d'environnement à l'échelle du système sont les mêmes quel que soit l'utilisateur qui se connecte.
Pour accéder à la valeur actuelle d'une variable système ou à une variable utilisateur en Java, voir ci-dessous:
Pour plus d'informations sur les variables d'environnement, consultez cette page wikipedia .
Assurez-vous également que la variable d'environnement que vous essayez de lire est correctement définie avant d'appeler Java en effectuant une:
Vous devriez voir la valeur de la variable d'environnement. Sinon, vous devrez peut-être rouvrir le shell (DOS) ou vous déconnecter et vous reconnecter.
la source
getenv
devrait être en petit cas au lieu degetEnv
droit?echo %var%
ça imprime%var%
. Si j'essaie à la place,echo $var
cela fonctionne et affiche la valeur de cette variable env. Mongetenv
retourne null.%var%
utilisé pour Windows,$var
pour les systèmes unix / linux / MacOS.Il y a quelques détails intéressants lors de l'obtention des propriétés système / environnement.
Premièrement, a
System.getenv(String)
été introduit il y a longtemps, puis obsolète. La dépréciation (bêtement, IHMO) s'est poursuivie jusqu'à JSE 1.4 .Il a été réintroduit dans JSE 5 .
Ceux-ci sont définis à l'aide du panneau Variables d'environnement de Windows. Les modifications apportées aux variables peuvent ne pas être prises en compte tant que votre machine virtuelle actuelle n'est pas arrêtée et que l'instance CMD.exe est fermée.
Contrairement aux propriétés de l'environnement, Java possède également des propriétés système Java, accessibles via
System.getProperties()
. Ces variables peuvent être initialisées au démarrage de la machine virtuelle à l'aide d'une série d' arguments de ligne de commande. Par exemple, les valeurs des propriétés et sont définies dans la commande ci-dessous:-Dname=value
maxInMemory
pagingDirectory
Ces propriétés peuvent être modifiées au moment de l'exécution, à l'exception des restrictions de politique de sécurité.
la source
En fait, la variable peut être définie ou non, donc, dans Java 8 ou supérieur, sa valeur Nullable doit être enveloppée dans un
Optional
objet, ce qui permet de très bonnes fonctionnalités. Dans l'exemple suivant, nous allons essayer d'obtenir la variableENV_VAR1
, si elle n'existe pas, nous pouvons lancer une exception personnalisée pour en avertir:la source
Google dit de vérifier getenv () :
Je ne suis pas sûr en quoi les variables système diffèrent des variables d'environnement, donc si vous pouviez clarifier, je pourrais vous aider davantage.
la source
Avez-vous essayé de redémarrer depuis que vous avez défini la variable d'environnement?
Il semble que Windows conserve sa variable d'environnement dans une sorte de cache, et le redémarrage est une méthode pour l'actualiser. Je ne suis pas sûr, mais il peut y avoir une méthode différente, mais si vous ne changez pas trop souvent la valeur de votre variable, cela peut être suffisant.
la source
Comme mentionné par sombody ci-dessus, redémarrer eclipse a fonctionné pour moi pour la variable d'environnement définie par l'utilisateur. Après avoir redémarré l'EDI eclipse,
System.getenv()
je récupère ma variable d'environnement.la source
Êtes-vous sur un système Linux? Si c'est le cas, assurez-vous d'exporter votre variable.
J'obtiens null sauf si j'utilise l'exportation pour définir la valeur globalement.
la source