web-dev-qa-db-fra.com

Comment lire une variable d'environnement dans Kotlin?

J'aimerais obtenir une certaine valeur d'une variable d'environnement dans mon application Kotlin, mais je ne trouve rien sur la lecture de variables d'environnement dans la documentation core libraries

Je m'attendrais à ce qu'il soit sous kotlin.system mais il n'y a vraiment pas grand chose là-bas.

15
Bjornicus

Il est vraiment facile d'obtenir une valeur d'environnement si elle existe ou une valeur par défaut en utilisant l'opérateur elvis dans kotlin:

var envVar: String = System.getenv("varname") ?: "default_value"
14
Patrick Boos

Vous pouvez toujours descendre cette approche:

val envVar : String? = System.getenv("varname")

Bien que, pour être juste, cela ne semble pas particulièrement idiomatique, car vous exploitez la classe System de Java, pas celle de Kotlin.

13
Marcin Porwit

Mon one-liner préféré est:

val myEnv = if (System.getenv("MY_ENV").isNullOrEmpty()) "default_value" else System.getenv("MY_ENV")
2
suside

Vous pouvez utiliser l'extension kotlin Konfig 

Konfig - Une API de configuration de type sécurisé pour Kotlin

Konfig fournit une API extensible et sécurisée pour les propriétés de configuration provenant de sources multiples: ressources intégrées, propriétés système, fichiers de propriétés, variables d’environnement, arguments de ligne de commande, etc.

Par exemple: Key("http.port", intType)

1
Kris Roofe