Comment définir les variables d'environnement à partir de Java ? Je vois que je peux le faire pour les sous-processus à l'aide des éléments suivants ProcessBuilder
. Mais comme j'ai plusieurs sous-processus à lancer, je préfère modifier l'environnement du processus actuel et laisser les sous-processus en hériter.
Il y a un System.getenv(String)
pour obtenir une seule variable d'environnement. Je peux également obtenir une Map
de l'ensemble complet des variables d'environnement avec System.getenv()
. Mais, en appelant put()
sur ce point Map
lance un UnsupportedOperationException
-- apparemment, ils veulent que l'environnement soit en lecture seule. Et, il n'y a pas de System.setenv()
.
Existe-t-il un moyen de définir des variables d'environnement dans le processus en cours d'exécution ? Si oui, comment ? Si non, quel est le raisonnement ? (Est-ce parce que c'est Java et donc que je ne devrais pas faire des choses obsolètes non portables comme toucher à mon environnement) ? Et sinon, avez-vous de bonnes suggestions pour gérer les changements de variables d'environnement que je vais devoir transmettre à plusieurs sous-processus ?
1 votes
System.getEnv() est destiné à être universel, certains environnements n'ont même pas de variables d'environnement.
17 votes
Pour tous ceux qui en ont eu besoin dans le cadre de tests unitaires : stackoverflow.com/questions/8168884/
1 votes
Pour Scala, utilisez ceci : gist.github.com/vpatryshev/b1bbd15e2b759c157b58b68c58891ff4