29

Je ne suis pas clair à ce sujet. Quand je lance une application java ou exécuter une applet dans la visionneuse applet, (dans l'environnement IDE), System.getProperty("java.class.path") me donne la même chose que System.getenv("CLASSPATH") qui est le CLASSPATH défini dans ma variable env.Quelle est la différence entre une propriété du système et la variable d'environnement

Mais quand je déploie mon applet pour serveur Web et accéder à partir du même ordinateur en tant que client, je reçois des résultats différents pour les deux. (System.getProperty("java.class.path") pointe uniquement vers JRE home et System.getenv("CLASSPATH") renvoie null).

Et voici quelques autres choses qui me font me demander:

Pour la partie applet, JAVA_HOME var env, j'obtenir le même résultat lors du déploiement de l'applet dans un navigateur ainsi que Applet Viewer.

Et si je me définis une variable d'environnement au niveau du système, et que j'utilise getenv("envName") le résultat est null. Y at-il de toute façon je peux en définir un et l'obtenir dans mon programme Java?

+0

Je continue à faire System.getProperty erreur ("java.io.tmpdir ") vs System.getenv (" TEMP ") –

+0

pour les personnes qui viennent à cette question à l'avenir, [cette question] (http://stackoverflow.com/questions/13112038/differ entre-system-getenv-system-getproperty) a été marqué comme doublon et a également de bonnes réponses. – Krease

Répondre

34

Variables d'environnement sont spécifiques au système d'exploitation. Les propriétés sont JVM uniquement.

+0

Je ne comprends toujours pas si env var est du système d'exploitation, pourquoi mon code dans l'applet obtenant la var env de classpath retourne un résultat différent dans les deux cas. La différence dans les deux cas est seulement le droit de la JVM? –

+0

Avez-vous vu javadoc pour System.getenv? Je pense que cela fait une différence si vous l'exécutez depuis le navigateur, l'IDE ou la console. Chacun d'eux peut avoir un environnement différent. –

20
System.getProperty("Propertname") **Platform Independent** 

La méthode ci-dessus renvoie les arguments et les propriétés JVM.

System.getenv("EnvName")  **Platform Dependent** 

La méthode ci-dessus renvoie votre système d'exploitation environment des variables.

Sous Linux, vous pouvez définir une variable d'environnement à partir du shell en utilisant la commande suivante .

export SYSTEM_TYPE=PROD 

En Java, vous pouvez lire la variable par

System.getenv("SYSTEM_TYPE") 

Le code ci-dessus retournera PROD

http://javarevisited.blogspot.in/2012/08/how-to-get-environment-variables-in.html

Questions connexes