2017-06-02 107 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"