2012-01-06 8 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() बनाम System.getenv() जावा

System.getenv("myvariable") ; 

का उपयोग तो यह मेरे उत्पादन true के रूप में देता है।

मुझे आश्चर्य है कि क्यों Boolean.getBoolean("myvariable") काम नहीं कर रहा है।

+0

मैं आपकी टिप्पणियों में 'testbootlog' का अनुमान लगा रहा हूं कि आम तौर पर' GetBoolean' को पास किया जा रहा है? –

+2

यदि विधि में कुछ समझदार नाम 'Boolean.getSystemPropertyAsBoolean' था, जो सभी भ्रम को साफ़ करेगा :) –

+0

हाँ @ जेम्स मॉन्टगेन, सुधार के लिए धन्यवाद। – Prakash

उत्तर

11

System.getenvपर्यावरण परिवर्तनीय देता है। यह System.getProperty जैसा ही नहीं है जो जावा सिस्टम प्रॉपर्टी देता है।

Boolean.getBoolean बाद कॉल का उपयोग करता है, दस्तावेज के रूप में:

रिटर्न अगर सच और केवल प्रणाली संपत्ति तर्क द्वारा नाम से मौजूद है और स्ट्रिंग "सही" के बराबर है, तो। [...] सिस्टम क्लास द्वारा परिभाषित एक विधि, getProperty के माध्यम से एक सिस्टम प्रॉपर्टी पहुंच योग्य है।

+0

धन्यवाद @ जोन स्कीट, मैं सोच रहा था कि दोनों पर्यावरण परिवर्तनीय हैं :) – Prakash

3

Boolean.getBoolean("myvariable"); के लिए एक प्रणाली संपत्ति myvariable कहा जाता है जबकि System.getenv("myvariable"); एक वातावरण चर के लिए लग रहा है लग रहा है। हालांकि समान, वे वही नहीं हैं।

+0

पर्यावरण परिवर्तक और सिस्टम गुण केवल "समान" हैं, जिनमें वे नाम-मूल्य जोड़े के सेट हैं। वे पूरी तरह से अलग स्रोतों से आते हैं। –

+0

धन्यवाद क्रिस, @ स्टीफन सी, यह सहायक था। – Prakash

संबंधित मुद्दे