Javaでは、System.getenv()
を使用して環境変数を読み取ります。
Scalaでこれを行う方法はありますか?
Scala 2.9以降、sys.env
を使用して同じ効果を得ることができます。
scala> sys.env("HOME")
res0: String = /home/paradigmatic
Javaの代わりにScala APIを使用すると良いと思います。現在、ScalaをJVM以外のプラットフォーム(.NET、javascript、ネイティブなど)にコンパイルするプロジェクトがいくつかあります。Java APIの依存関係を減らすと、コードの移植性が高まります。
オブジェクトがあります:
scala.util.Properties
これには、環境情報を取得するために使用できるメソッドのコレクションがあります。
scala.util.Properties.envOrElse("HOME", "/myhome" )
同じ方法:
scala> System.getenv("HOME")
res0: Java.lang.String = /Users/dhg
sys.env
マップ(val myenv: Map[String, String] = sys.env
)上のgetOrElse
でデフォルトを直接使用する:
sys.env.getOrElse(envVariable, defaultValue)
envVariable
のコンテンツ、または存在しない場合はdefaultValue
のコンテンツを取得します。
Lightbendの構成ライブラリを使用する場合(Play2およびAkkaでデフォルト)、使用できます
foo = "default value" foo = ${?VAR_NAME}
環境変数VAR_NAMEが存在する場合、fooをオーバーライドする構文。詳細は https://github.com/typesafehub/config#optional-system-or-env-variable-overrides
all環境変数を出力するには、次を使用できます。
System.getenv.forEach((name, value) => println(s"$name: $value"))