Scalaで環境変数を読み取る方法
1. 概要
このチュートリアルでは、Scalaで環境変数を読み取る方法を見ていきます。
環境変数を使用すると、アプリケーションが読み取ることができるOS上の特定のキーの値を定義できます。 通常、ファイルを読み取るパスなど、一部の構成でこれらを使用します。
2. 環境変数の読み取り
ほとんどのプログラミング言語と同様に、Scalaでは環境変数を読み取ることができます。 それを行うにはいくつかの異なる方法がありますが、それらは非常に似ているので、何よりも個人的な好みの問題です。
2.1. Scalaのsysオブジェクトの使用
The Scalaで環境変数を読み取る最も一般的で慣用的な方法は、sysパッケージオブジェクトを使用することです。 、環境変数を
scala> sys.env
res0: scala.collection.immutable.Map[String,String] = HashMap(JAVA_MAIN_CLASS_27606 -> scala.tools.nsc.MainGenericRunner, PWD -> /private/tmp, JAVA_ARCH -> x86_64)
scala> sys.env.get("PWD")
res1: Option[String] = Some(/private/tmp)
scala sys オブジェクトは、前のセクションで見たJavaコードの単なる薄いラッパーですが、変数が存在しない場合はnullを返さないため、より慣用的なものになります。
2.2. Scalaのプロパティオブジェクトの使用
それほど一般的ではありませんが、環境変数を読み取る別の方法があります。 これは、scala.util.Propertiesオブジェクトの使用で構成されています。
scala> scala.util.Properties.envOrElse("PWD", "undefined")
res0: String = /private/tmp
scala> scala.util.Properties.envOrElse("RANDOM-VAR-FOO", "undefined")
res1: String = undefined
scala> scala.util.Properties.envOrNone("PWD")
res2: Option[String] = Some(/private/tmp)
2.3. Javaのシステムオブジェクトの使用
ScalaはJavaとの相互運用性を提供するため、Javaと同じユーティリティを使用できます:
scala> System.getenv()
res0: java.util.Map[String,String] = {JAVA_ARCH=x86_64, JAVA_MAIN_CLASS_27606=scala.tools.nsc.MainGenericRunner, PWD=/private/tmp}
scala> System.getenv("PWD")
res1: String = /private/tmp
scala> System.getenv("RANDOM-VAR-FOO")
res2: String = null
3. 結論
この記事では、Scalaで環境変数を読み取るさまざまな方法を見てきました。 それを行うにはいくつかの方法がありますが、それらは非常に似ており、簡単です。