2009-02-17 23 views
6

मेरा ग्रहण आरसीपी अनुप्रयोग को एक कॉन्फ़िगरेशन फ़ाइल की आवश्यकता होती है जिसमें दूरस्थ डेटाबेस से कनेक्ट करने के लिए कुछ जानकारी होती है। इस कॉन्फ़िगरेशन फ़ाइल को स्टोर करने के लिए सबसे अच्छा स्थान कहां है?ग्रहण आरसीपी: कॉन्फ़िगरेशन निर्देशिका का उपयोग करना

क्या मैं इस उद्देश्य के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन निर्देशिका (जहां 'config.ini' आमतौर पर संग्रहीत किया जाता है) का उपयोग कर सकता हूं? यदि हां, तो मैं इस स्थान पर प्रोग्रामेटिक रूप से फ़ाइल उदाहरण कैसे प्राप्त कर सकता हूं? मैं यह भी ध्यान देता हूं कि यह निर्देशिका मेरे ग्रहण आईडीई में मौजूद नहीं है।

धन्यवाद।

उत्तर

0

आमतौर पर, मैं कॉन्फ़िगरेशन फ़ाइलों को "बिन" निर्देशिका में छिपाना पसंद करता हूं, या कहीं रूट निर्देशिका में नहीं। आपको इसे अपने प्रोजेक्ट की उप-निर्देशिका में रखना चाहिए ताकि आप सिस्टम पर कुछ यादृच्छिक स्थान को अव्यवस्थित न करें। आप फ़ाइल के लिए एक संभाल पाने के लिए की जरूरत है, तो आप सिर्फ कर सकते हैं:

File configFile = new File("./bin/remoteDbConfig.ini"); 

फिर अपनी एक सच्चे INI फ़ाइल, आप Properties.load() उपयोग कर सकते हैं लोड और INI फ़ाइल से मानों का उपयोग कर।

आप दूरस्थ कनेक्शन के लिए आवश्यक डेटा को संग्रहीत करने के लिए प्राथमिकता API का भी उपयोग कर सकते हैं।

+0

क्या उपयोगकर्ता सेटिंग्स बदल सकते हैं, या वे अपेक्षाकृत कठिन कोडित हैं? –

+0

आप प्रोग्रामेटिक रूप से सेटिंग्स बदल सकते हैं, लेकिन आपको उपयोगकर्ता को ऐसा करने का तरीका देना होगा। (ग्रहण, सीएमडी लाइन तर्क, आदि जैसे जीयूआई वरीयता विकल्प) Properties.setProperty (कुंजी, वैल), Properties.store (स्ट्रीम, हेडर) –

1

संसाधनों प्लगइन पर एक नजर डालें - आप दे सकता है आप जो खोज रहे हैं:

http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/resInt_filesystem.htm

+0

के बाद यह प्लगइन का एक बड़ा सेट है जो आरसीपी पहले से नहीं हो सकता है। यह प्राथमिकता स्टोर का कार्यान्वयन प्रदान करता है, केवल वर्कस्पेस में वरीयताओं को संग्रहीत करने की अनुमति देता है। आपका लिंक किसी भी वरीयता-केंद्रित पर नहीं जाता है। :( – jamesh

5

आपके पास हमेशा की तरह, विकल्पों में से एक नंबर, अपनी आवश्यकताओं के आधार पर।

  • उपयोग Runtime Preferences एक उपयुक्त PreferenceInitializer के साथ एक PreferenceStore में स्टोर करने के लिए। बहुत सारे विचारों के साथ काफी बड़ा और व्यापक एपीआई इसमें चला गया। वरीयताओं को डिफ़ॉल्ट रूप से उपयोगकर्ता या व्यवस्थापक से अवगत नहीं किया जाता है, इसलिए आपको वरीयता पृष्ठ का पर्दाफाश करने के लिए कुछ कार्य करने की आवश्यकता होगी, या गुण फ़ाइल को लिखना होगा।
कम उन्नत/कम काम के लिए

, खासकर यदि आप ग्रहण प्राथमिकताएं (जैसे सर्वर साइड OSGi) करने के लिए पहुँच नहीं है: RCP.ini में एक प्रणाली संपत्ति के रूप में

  • सेट,। लॉन्च के बाद उपयोगकर्ता-परिवर्तनीय नहीं, इसके लिए RCP.ini (eclipse.ini) फ़ाइल तक पहुंच की आवश्यकता होती है, जो संभवतः यदि आप आईडीई का योगदान नहीं दे रहे हैं। शॉर्टकट में एक तर्क के रूप में
  • सिस्टम प्रॉपर्टी के रूप में सेट किया गया है। शॉर्टकट का उपयोग कर उपयोगकर्ता पर निर्भर करता है। स्थापना समय पर विशेष शॉर्टकट उत्पन्न किया जाना चाहिए।

तो फाइल सिस्टम से पहुँच वास्तव में महत्वपूर्ण है, तो मैं एक etc निर्देशिका स्थापित करने के लिए उपरोक्त विधियों में से एक का उपयोग करने पर विचार करेंगे, और अपने बंडलों etc निर्देशिका में डिफ़ॉल्ट गुण फ़ाइलें उत्पन्न अगर वे मौजूद नहीं है चलो पहले उपयोग पर। यह अनिवार्य रूप से अपनी वरीयता स्टोर रोलिंग कर रहा है, इसलिए यदि आपके पास एक्सेस वरीयता बंडल है, तो आप ऐसा करने से बेहतर हो सकते हैं। यह पुराना User Settings FAQ सहायक भी हो सकता है।

मुझे एक एरिच गामा (जैसे गैंग ऑफ फोर, और जेडीटी तकनीकी लीड) साक्षात्कार में याद है जिसमें वह कहता है कि लगभग सात अलग वरीयता तंत्र हैं, और वह कभी नहीं जानता कि किस का उपयोग करना है।

0

विन्यास निर्देशिका की फ़ाइल स्थान पाने के लिए, चलाएँ:

नई org.eclipse.core.runtime.preferences.ConfigurationScope() getLocation() toFile();।।

2

जैसा कि पहले से ही बताया गया है, प्राथमिकता API कुछ देखने के लिए है। सुरक्षित प्राथमिकता API भी है जो डिस्क पर एन्क्रिप्टेड उपयोगकर्ता नाम और पासवर्ड स्टोर करने के लिए उपयुक्त है।

एक और विकल्प 'org.eclipse.osgi.service.datalocation.Location' ओएसजीआई सेवा का उपयोग करना है। यह उपलब्ध विभिन्न स्थानों तक पहुंच प्रदान करता है।

एक तीसरा विकल्प 'config.ini' में एक सिस्टम प्रॉपर्टी को परिभाषित करना है जो प्लेसहोल्डर्स का उपयोग करके आपकी कनेक्शन जानकारी के साथ फाइल करने के लिए इंगित करता है: '[email protected]/mysettings.ini'। '@ config.dir' एक प्लेसहोल्डर है जो कॉन्फ़िगरेशन निर्देशिका के वास्तविक पथ के साथ प्रतिस्थापित हो जाता है।

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