En passant des variables d'environnement à une machine virtuelle Java, d'une manière indépendante de la plateforme

StackOverflow https://stackoverflow.com/questions/1462069

Question

Je développe une application J2EE qui fonctionne dans JBoss sur une machine Windows Vista, mais l'application finirai sur une machine Linux. Est-il possible de passer de la valeur d'une variable d'environnement dans une plate-forme de manière indépendante?

Je pense (mais je ne suis pas sûr) la façon dont la plate-forme sensible serait:

-Denv_var=%MY_ENV_VAR% (Windows)
-Denv_var=$MY_ENV_VAR (Linux)

et à partir de là j'accéder à la valeur (en Java) en utilisant

System.getProperty("MY_ENV_VAR");

- est-ce exact

Le Javadoc System.getenv(String name) semble impliquer que la méthode dépend de la plate-forme, mais je ne suis pas clair. Pourrais-je sauter simplement passer la variable dans la machine virtuelle Java complètement, et utiliser getenv() après avoir utilisé le réglage de la valeur d'une variable d'environnement en utilisant le système d'exploitation?

Était-ce utile?

La solution

System.getenv () est indépendant de la plateforme elle-même. En utilisant votre exemple ci-dessus, vous pouvez certainement écrire

String value = System.getenv("MY_ENV_VAR")

et il fonctionne sur Linux et Windows. Aucune raison pour envelopper dans cette propriété système java. Cela dit, la partie de getenv() « dépendant de la plate-forme » réside dans le fait que les différents systèmes d'exploitation utilisent des variables d'environnement, comme PATH sur Windows vs chemin sur Linux. Mais aussi longtemps que vous êtes en utilisant vos propres variables et nommez toujours (toujours en majuscules, par exemple), vous serez très bien.

Autres conseils

Comment j'interprète le tutoriel java sur ce est que getenv travaille dans une plate-forme de manière indépendante, mais que vous devez garder à l'esprit que les variables ne sont pas toujours nommées sur toutes les plateformes. Puisque vous semblez définir le var vous, cela ne vous concerne pas.

Oui - getenv () va simplement retourner le nom de la variable d'environnement, et vous pouvez le configurer de quelque manière appropriée à la plate-forme que vous utilisez sur (généralement par l'intermédiaire d'un fichier de commandes de lancement sur Win32). Il est bon de se replier sur les valeurs par défaut sensibles en fonction de la plate-forme (en inspectant System.getProperty("os.name")), s'il est possible que vous voulez éviter que vos utilisateurs s'embêter avec besoin de jouer avec des variables environnementales pour faire fonctionner votre logiciel.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top