2017-06-02 46 views
6

我想从我的Kotlin应用程序中的环境变量中获得一定的值,但在core libraries文档中找不到有关读取环境变量的任何内容。如何读取Kotlin中的环境变量?

我期望它在kotlin.system之下,但那里真的没那么多。

+0

你有没有尝试System.getenv? – danielspaniol

+1

我没有。我猜想,当搜索“我如何在Kotlin中执行X”并没有找到我想要的答案时,那么搜索“如何在Java中执行X”可能会产生可用的结果。 – Bjornicus

+0

@Bjornicus你绝对是关键。 JVM上的Kotlin可以访问所有Java的API。 –

回答

1

可以使用科特林扩展Konfig

Konfig - A Type Safe Configuration API for Kotlin

Konfig提供了一个可扩展的配置属性类型安全的API从多个来源收集 - 内置的资源,系统属性,属性文件,环境变量,命令行参数等

+0

是的,我们如何使用envs?没有文档? – PedroD

9

你总是可以走这条途径:

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

虽然,公平地说,这并不是特别习惯,因为你正在利用Java的System类,而不是Kotlin的。

+4

“利用Java的系统类”没有任何问题。 Kotlin非常重视Java interop,并且当您针对JVM时,它有望使用Java API。 –

2

我最喜欢的一个班轮是:

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

这是很容易,如果它存在,或通过在科特林使用Elvis操作符的默认值来获得一个环境值:

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