[scala] 스칼라에서 환경 변수를 읽는 방법

Java에서는 환경 변수 읽기가로 수행됩니다 System.getenv().

스칼라에서 이것을 할 수있는 방법이 있습니까?



답변

스칼라 2.9부터는 sys.env같은 효과를 사용할 수 있습니다 .

scala> sys.env("HOME")
res0: String = /home/paradigmatic

Java 대신 Scala API를 사용하는 것이 좋습니다. 현재 스칼라를 JVM (.NET, javascript, native 등) 이외의 다른 플랫폼으로 컴파일하는 프로젝트가 여러 개 있습니다. Java API에 대한 종속성을 줄이면 코드를 더 이식 가능하게 만들 수 있습니다.


답변

객체가 있습니다 :

scala.util.Properties

여기에는 다음을 포함하여 환경 정보를 얻는 데 사용할 수있는 메소드 모음이 있습니다.

scala.util.Properties.envOrElse("HOME", "/myhome" )


답변

같은 길:

scala> System.getenv("HOME")
res0: java.lang.String = /Users/dhg


답변

지도 를 getOrElse통해 기본값을 직접 사용 sys.env( val myenv: Map[String, String] = sys.env) :

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에 대한 자세한 내용


답변

모든 환경 변수 를 인쇄하려면

System.getenv.forEach((name, value) => println(s"$name: $value"))


답변