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() in Java

System.getenv("myvariable") ; 

를 사용하는 경우 다음은 true로 나에게 출력을 제공합니다.

Boolean.getBoolean("myvariable")이 작동하지 않는 이유가 궁금합니다.

+0

귀하의 의견에'testbootlog'가 정상적으로'getBoolean'에 전달되는 것 같습니다. –

+2

메서드에 'Boolean.getSystemPropertyAsBoolean'과 같은 의미있는 이름이 있다면, 모든 혼동을 해결할 수 있습니다. –

+0

예 @JamesMontagne, 수정 해 주셔서 감사합니다. – Prakash

답변

11

System.getenv은 인 환경 변수 을 반환합니다. 이는 System.getProperty과 같은 것이 아니며 Java 시스템 속성을 반환합니다.

반환 경우는 true 만 인수로 명명 된 시스템 특성이 스트링 "true"에 동일한 경우 :

Boolean.getBoolean는 설명 된대로, 후자의 전화를 사용합니다. [...] 시스템 속성은 getProperty을 통해 액세스 할 수 있습니다.이 메서드는 System 클래스에서 정의합니다.

+0

고마워요 @ 존 Skeet, 나는 둘 다 환경 변수를 생각하고 있었다 :) – Prakash

3

Boolean.getBoolean("myvariable");은 myvariable이라는 시스템 속성을 찾습니다. 반면 System.getenv("myvariable");은 환경 변수를 찾습니다. 유사하지만, 그들은 동일하지 않습니다.

+0

환경 variablea와 시스템 속성은 이름 - 값 쌍의 집합이라는 점에서 "유사"하다. 그들은 완전히 다른 출처에서 왔습니다. –

+0

Chris, @Stephen C, 도움이 되었어요. – Prakash