2017-06-02 20 views
6

Kotlin uygulamamdaki bir ortam değişkeninden belirli bir değer elde etmek istiyorum, ancak core libraries belgelerinde ortam değişkenlerini okumakla ilgili hiçbir şey bulamıyorum.Kotlin'de bir ortam değişkenini nasıl okurum?

kotlin.system'un altında olmasını beklerdim ama gerçekten orada pek bir şey yok.

+0

Öyle mi System.getenv'i dene? – danielspaniol

+1

Ben yapmadım. "Kotlin'de X'i nasıl yaparım?" Sorusu istediğimi cevaplamadığında, "Java'da X'i nasıl yapabilirim" için bir arama kullanılabilir bir sonuç verebilir. – Bjornicus

+0

@Bjornicus Kesinlikle noktasındasınız. JVM'deki Kotlin, tüm Java'nın API'lerine erişime sahiptir. –

cevap

1

Sen KOTLIN uzantısı Konfig

Konfig - A Type Safe Configuration API for Kotlin

kullanabilirsiniz

Konfig genişletilebilir, konfigürasyon özellikleri için tip-güvenli API birçok kaynaktan toplanmaktadır sağlar - kaynaklar inşa sistem özelliklerine, mülkiyet dosyaları, çevre değişkenleri, komut satırı argümanları, vb

+0

Evet, env'leri bununla nasıl kullanırız? Doktor yok mu? – PedroD

9

hep bu yaklaşımı aşağı gidebiliriz:

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

Gerçi, adil olmak gerekirse, bu, Java'nın Sistem sınıfını değil, Kotlin'in değil, özellikle deyimsiz hissettiriyor.

+4

"Java'nın Sistem sınıfını kullanma" konusunda bir sorun yok. Kotlin, Java etkileşimi üzerinde güçlü bir öneme sahiptir ve JVM'yi hedeflediğinizde, Java API'lerini kullanması beklenir. –

2

sevdiğim tek satırlık geçerli:

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

O var veya KOTLIN içinde elvis operatörünü kullanarak bir varsayılan değer eğer bir ortam değeri elde etmek gerçekten kolaydır:

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