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

La chiamata di cui sopra mi dà uscita come false. Se usoBoolean.getBoolean() Vs System.getenv() in Java

System.getenv("myvariable") ; 

allora mi dà uscita come true.

Mi chiedo perché Boolean.getBoolean("myvariable") non funzioni.

+0

Sto indovinando il 'testbootlog' nei commenti è ciò che viene normalmente passato a' getBoolean'? –

+2

Se il metodo stava avendo un nome ragionevole come 'Boolean.getSystemPropertyAsBoolean', questo eliminerà tutta la confusione :) –

+0

Sì @JamesMontagne, grazie per la correzione. – Prakash

risposta

11

System.getenv restituisce una variabile di ambiente . Non è la stessa cosa di System.getProperty che restituisce una proprietà di sistema Java.

Boolean.getBoolean utilizza quest'ultimo chiamata, come documentato:

Restituisce vero se e solo se la proprietà di sistema denominata dall'argomento esiste ed è uguale alla stringa "true". [...] Una proprietà di sistema è accessibile tramite getProperty, un metodo definito dalla classe System.

+0

Grazie a @Jon Skeet, stavo pensando entrambi di ottenere la variabile di ambiente :) – Prakash

3

Boolean.getBoolean("myvariable"); cercata una proprietà di sistema chiamato myVariable mentre System.getenv("myvariable"); cerca una variabile d'ambiente. Sebbene simili, non sono la stessa cosa.

+0

l'ambiente variablea e le proprietà di sistema sono solo "simili" in quanto sono insiemi di coppie nome-valore. Provengono da fonti completamente diverse. –

+0

Grazie Chris, @Stephen C, è stato utile. – Prakash