2012-01-06 15 views
5
Boolean.getBoolean("myvariable"); // where myvariable has been defined in the 
            // Environment variable as Variable name: 
            // myvariable 
            // and Variable Value:true 

La llamada anterior me da salida como false. Si usoBoolean.getBoolean() Vs System.getenv() en Java

System.getenv("myvariable") ; 

entonces me da salida como true.

Me pregunto por qué Boolean.getBoolean("myvariable") no está funcionando.

+0

Supongo que 'testbootlog' en sus comentarios es lo que normalmente se pasa a' getBoolean'? –

+2

Si el método tenía algún nombre razonable como 'Boolean.getSystemPropertyAsBoolean', eso borrará toda confusión :) –

+0

Sí @JamesMontagne, gracias por la corrección. – Prakash

Respuesta

11

System.getenv devuelve una variable de entorno . Eso no es lo mismo que System.getProperty, que devuelve una propiedad del sistema Java.

Boolean.getBoolean utiliza la última llamada, tal como se documenta:

devuelve verdadero si y sólo si la propiedad del sistema llamada por el argumento existe y es igual a la cadena "true". [...] Se puede acceder a una propiedad del sistema a través del getProperty, un método definido por la clase del sistema.

+0

Gracias @Jon Skeet, estaba pensando que ambos obtienen la variable de entorno :) – Prakash

3

Boolean.getBoolean("myvariable"); Busca una propiedad de sistema llamado myvariable mientras que System.getenv("myvariable"); busca una variable de entorno. Aunque similares, no son lo mismo.

+0

la variable de entorno y las propiedades del sistema son solo "similares" en el sentido de que son conjuntos de pares nombre-valor. Vienen de fuentes completamente diferentes. –

+0

Gracias Chris, @Stephen C, eso fue útil. – Prakash