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"))