2012-04-03 23 views

Respuesta

171

Desde Scala 2.9 se puede utilizar sys.env para el mismo efecto:

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

Creo que es agradable de usar la API de Scala en lugar de Java. Actualmente hay varios proyectos para compilar Scala en otras plataformas aparte de JVM (.NET, JavaScript, nativo, etc.). La reducción de las dependencias en la API de Java hará que su código sea más portátil.

+70

Probablemente sea una mejor práctica usar 'sys.env.get (" VARIABLE ")' que le dará una 'Opción [String]' en lugar de arrojar un error si esa variable falta. –

+2

@CristianVrabie Yo también lo preferiría, en la mayoría de los casos. Pero 'sys.env' es solo un' Mapa'. Puede cualquier método que sea apropiado para usted. – paradigmatic

23

misma manera:

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

funciona, pero no es realmente la mejor opción – iwein

+4

NOTA: No pase por alto las otras respuestas - son gemas ! –

+2

debe hacerse utilizando la API de Scala en lugar de Java. –

97

hay un objeto:

scala.util.Properties 

esto tiene una colección de métodos que se pueden utilizar para obtener información ambiente, incluyendo

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

También preferiría Propiedades. Permite recuperar Opcionales, y tiene nombres para propiedades comúnmente usadas. – ppopoff

0

Para imprimir todos variables de entorno, puede utilizar

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