2013-12-16 13 views
29

मेरा ओएस विंडोज 7 है। मैं अपने जावा एप्लिकेशन में पर्यावरण चर को पढ़ना चाहता हूं। मैंने Google की खोज की है और कई लोगों का उत्तर System.getProperty(String name) या System.getenv(String name) विधि का उपयोग करना है। लेकिन यह काम नहीं लग रहा है। विधि के माध्यम से, मैं कुछ चर के मान को पढ़ सकता हूं जो JVM में परिभाषित किया गया है।क्या हम जावा में ओएस पर्यावरण चर पढ़ सकते हैं?

यदि मैं "कॉन्फ़िगर" नामक एक पर्यावरण चर सेट करता हूं, तो "कुछ कॉन्फ़िगरेशन सूचना" मान के साथ, मैं जावा में मूल्य कैसे प्राप्त कर सकता हूं?

किसी भी मदद के लिए धन्यवाद!

+2

'System.getenv()' उपयोग करने के लिए सही कॉल है। –

+4

http://stackoverflow.com/questions/461018/how-can-my-java-code-read-os-environment-variables –

+4

के संभावित डुप्लिकेट कृपया यह भी ध्यान रखें कि यदि आप विंडोज़ में एक एनवी वैरिएबल संशोधित करते हैं, तो आप – vikingsteve

उत्तर

49

उदाहरण के लिए आप System.getenv() का उपयोग करना चाहिए,:

import java.util.Map; 

public class EnvMap { 
    public static void main (String[] args) { 
     Map<String, String> env = System.getenv(); 
     for (String envName : env.keySet()) { 
      System.out.format("%s=%s%n", 
           envName, 
           env.get(envName)); 
     } 
    } 
} 

जब एक IDE से चल आप अतिरिक्त वातावरण चर जो अपने जावा आवेदन करने के लिए पारित हो जाएगा परिभाषित कर सकते हैं। उदाहरण के लिए इंटेलिजे आईडीईए में आप run configuration के "पर्यावरण चर" फ़ील्ड में पर्यावरण चर जोड़ सकते हैं।

नोटिस (जैसा कि @vikingsteve द्वारा टिप्पणी में उल्लिखित है) कि जेवीएम, किसी भी अन्य विंडोज निष्पादन योग्य, पर्यावरण चर के लिए सिस्टम-स्तरीय परिवर्तनों को केवल पुनरारंभ होने पर प्रक्रिया के लिए प्रचारित किया जाता है।

अधिक जानकारी के लिए जावा ट्यूटोरियल के "Environment Variables" अनुभाग पर एक नज़र डालें।

System.getProperty(String name) जावा system properties प्राप्त करने के लिए है जो पर्यावरण चर नहीं हैं।

+2

@ डोरब समस्या क्यों मैं "पर्यावरण चर" नहीं प्राप्त कर सकता हूं क्योंकि वास्तव में मैंने अपना आईडीई पुनरारंभ नहीं किया है। टी – William

+0

मेरे लिए वही है। आईडीई को पुनरारंभ करना पड़ा। – gosua

34

यदि कोई यहां आ रहा है और सोच रहा है कि आपके सभी सिस्टम चर के माध्यम से लूप किए बिना एक विशिष्ट पर्यावरण चर कैसे प्राप्त करें, तो आप getenv(String name) का उपयोग कर सकते हैं। यह "चर के स्ट्रिंग मान को लौटाता है, या शून्य अगर चर वातावरण प्रणाली में परिभाषित नहीं किया गया है"।

String myEnv = System.getenv("env_name"); 
+0

क्या यह ओएस स्वतंत्र है? – TheByeByeMan

+4

हां, यह किसी भी ओएस पर काम करेगा जो env vars –

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