如何在Scala中读取环境variables
在Java中,读取环境variables是通过System.getenv()
。
有没有办法在斯卡拉这样做?
从Scala 2.9开始,你可以使用sys.env
来达到同样的效果:
scala> sys.env("HOME") res0: String = /home/paradigmatic
我认为使用Scala API而不是Java是很好的。 目前有几个项目可以将Scala编译到除JVM之外的其他平台(.NET,javascript,native等)。减less对Java API的依赖,将使您的代码更加便携。
有一个对象:
scala.util.Properties
这有一个可以用来获取环境信息的方法集合,其中包括
scala.util.Properties.envOrElse("HOME", "/myhome" )
同样的方式:
scala> System.getenv("HOME") res0: java.lang.String = /Users/dhg
如果使用Lightbend的configuration库(在Play2和Akka默认),那么你可以使用
foo = "default value" foo = ${?VAR_NAME}
语法来覆盖foo,如果环境variablesVAR_NAME存在。 更多细节在https://github.com/typesafehub/config#optional-system-or-env-variable-overrides
要打印所有环境variables,可以使用
System.getenv.forEach((name, value) => println(s"$name: $value"))