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

выше вызов дает мне выход в false. Если я используюBoolean.getBoolean() Vs System.getenv() в Java

System.getenv("myvariable") ; 

, то это дает мне выход в true.

Мне интересно, почему Boolean.getBoolean("myvariable") не работает.

+0

Я предполагаю, что 'testbootlog' в ваших комментариях - это то, что обычно передается' getBoolean'? –

+2

Если метод имел какое-то разумное имя, например 'Boolean.getSystemPropertyAsBoolean', это очистит всю путаницу :) –

+0

Да @JamesMontagne, спасибо за исправление. – Prakash

ответ

11

System.getenv возвращает переменная среды. Это не то же самое, что System.getProperty, который возвращает Java-системное свойство.

Boolean.getBoolean использует последний вызов, как описано:

Возвращает истину, если и только если системное свойство с именем аргументом существует и равна строке «истинной». [...] Системное свойство доступно через getProperty, метод, определенный классом System.

+0

Спасибо @Jon Skeet, я думал, что оба получат переменную окружения :) – Prakash

3

Boolean.getBoolean("myvariable"); ищет Система свойств называется MyVariable тогда System.getenv("myvariable"); ищет переменную окружения. Хотя они похожи, они не то же самое.

+0

переменные среды и системные свойства только «похожи», поскольку они представляют собой пары пар имя-значение. Они происходят из совершенно разных источников. –

+0

Спасибо, Крис, @ Stephen C, это было полезно. – Prakash

Смежные вопросы