Comment puis-je obtenir le Système de valeur de la variable en Java?
Comment puis-je obtenir le Système de valeur de la Variable qui est présent dans
MyComputer -> Properties -> Advanced -> Environment Variables -> System Variables
en Java?
Modifier
J'ai utilisé System.getenv()
méthode.
C'est l'impression de la valeur si je donne
System.out.println(System.getenv("JAVA_HOME"));
et c'est en montrant null
valeur si j'essaie la même chose pour la variable système créé par moi
System.out.println(System.getenv("DBE"));
- Vous pouvez essayer de redémarrer le processus de demande (NetBeans dans mon cas).
- J'ai observé que l'option de redémarrage d'eclipse ne fonctionne pas. Il suffit de fermer l'application et commencer à nouveau.
- Le redémarrage de l'Ide a résolu mon problème.
- Redémarrer le système a fonctionné pour moi, peut-être JVM garde cache de valeurs au premier démarrage en raison de laquelle de nouvelles variables ne sont pas détectés.
Vous devez vous connecter pour publier un commentaire.
Utiliser le
System.la fonction getenv(String)
méthode, en passant le nom de la variable à lire.Pour clarifier, les variables du système sont les mêmes que les variables d'environnement. Les variables d'environnement utilisateur sont définis par l'utilisateur et sont différents à chaque fois qu'un autre utilisateur se connecte. À l'échelle du système les variables d'environnement sont les mêmes, peu importe ce que l'utilisateur ouvre une session.
D'avoir accès à la valeur actuelle de l'ensemble du système ou une autre variable utilisateur variable en Java, voir ci-dessous:
Pour plus d'informations sur les variables d'environnement voir ce page wikipedia.
Aussi assurez-vous que la variable d'environnement que vous essayez de lire est correctement installé avant de lancer Java en faisant un:
Vous devriez voir la valeur de la variable d'environnement. Si non, vous pouvez avoir besoin de rouvrir l'interpréteur de commandes (DOS) ou déconnectez-vous et reconnectez-vous.
getenv
devrait être dans les petits cas au lieu degetEnv
droit?echo %var%
il imprime%var%
. Si j'essaie plutôtecho $var
il fonctionne et affiche la valeur de la variable env. Mongetenv
est de retourner la valeur null.$var
pour unix / linux / MacOS.Il y a quelques détails intéressants lors de l'obtention de système/propriétés de l'environnement.
D'abord,
System.getenv(String)
a été introduit au retour quand, alors obsolète. L'autodérision (bêtement, IHMO) a continué tout le chemin dans la JSE 1.4.Il a obtenu ré-introduit dans la JSE 5.
Ceux qui sont définis en utilisant les Variables d'Environnement du panneau dans Windows. Les modifications apportées aux variables ne peuvent pas obtenir ramassé jusqu'à ce que votre machine virtuelle (VM) est à l'arrêt, et la CMD.exe l'instance est sorti.
En contraste avec les propriétés de l'environnement, Java a également des propriétés système Java, accessible par
System.getProperties()
. Ces variables peuvent être initialisées lors de la VM est démarré à l'aide d'une série-Dname=value
arguments de ligne de commande. Par exemple, les valeurs pour les propriétésmaxInMemory
etpagingDirectory
sont définies dans la commande ci-dessous:Ces propriétés peuvent être modifiées lors de l'exécution, de limitation de sécurité de la politique de restrictions.
En fait la variable peut être définie ou pas, donc, Dans Java 8 ou supérieure à son nullable valeur doit être enveloppé dans un
Optional
objet, ce qui permet vraiment de bonnes caractéristiques. Dans l'exemple suivant, nous allons essayer de vous obtenir la variableENV_VAR1
, si elle ne marche pas exister nous pouvons jeter un peu d'Exception personnalisée à alerter à ce sujet:Google dit de vérifier la fonction getenv():
Je ne suis pas sûr de savoir comment le système de variables diffèrent de variables d'environnement, cependant, donc si vous pouviez préciser que je pourrais aider plus.
Comme mentionné par sombody ci-dessus, le redémarrage d'eclipse a fonctionné pour moi pour l'utilisateur défini la variable d'environnement.
Après avoir redémarrer eclipse IDE,
System.getenv()
est ramasser ma variable d'environnement.Avez-vous essayé de redémarrer depuis vous définissez la variable d'environnement?
Il semble que Windows garde sa variable d'environnement dans une sorte de cache, et le redémarrage est une méthode de l'actualisation. Je ne suis pas sûr, mais il y a peut être une autre méthode, mais si vous n'allez pas être en train de changer votre valeur de la variable trop souvent, cela peut être assez bon.
Vous êtes sur un système linux? Si donc, assurez-vous que vous exportez votre variable.
- Je obtenir nul à moins que j'utilise à l'exportation pour définir la valeur à l'échelle mondiale.