के अंदर से लोड हो रहा है मैंने getResourceAsStream के माध्यम से एक जार के भीतर किसी विशेष फ़ाइल को लोड करने के तरीके के बारे में कुछ जवाब देखा है, और मैं इसे प्रबंधित कर सकता हूं। हालांकि मुझे वास्तव में कुछ खास सामना करना पड़ रहा है, मुझे इस मंच पर इसके बारे में कोई जवाब नहीं मिला।संसाधन बंडल के साथ एक जार
मैं एक जार फ़ाइल एक conf निर्देशिका है कि 2 गुण होता messages_en_US.properties और messages_fr_FR.properties फ़ाइलें होने है:
यहाँ विन्यास है। ऐसे संसाधनों लोड करने के लिए शास्त्रीय तरीका
ResourceBundle.getBundle("messages", java.util.Locale.getDefault());
उपयोग करने के लिए यदि फ़ाइलें डिस्क पर थे, एक निर्देशिका programm classpath द्वारा संदर्भित में, इस ठीक काम करता है है। लेकिन मुझे नहीं पता कि मैं संसाधन Bundle.getBundle के उपयोग के संयोजन का प्रबंधन कैसे कर सकता हूं और एक जार को बुद्धिमान से संसाधनों का उपयोग कर सकता हूं। दरअसल, क्योंकि मुझे के माध्यम से कोई पुल नहीं मिल रहा है, GetResourceAsStream (या यह संपूर्ण संसाधन फ़ाइल नाम निर्दिष्ट करने के लिए स्वयं को लोकेल प्रबंधित करना होगा, जो बहुत स्मार्ट नहीं है)।
क्या कोई मदद कर सकता है?
धन्यवाद।
तुम कहाँ है कि फाइल की क्या ज़रूरत है:
इस फाइल को पढ़ने के लिए डब्बे में? यदि यह एक जेएआर में रहता है तो इसका मतलब है कि आपके पास क्लासपाथ में है और आपको इसे सामान्य रूप से ResourceBundle.getBundle – rascio
के साथ लोड करने में समस्या नहीं होनी चाहिए। मेरे पास एक ही समस्या है, मेरे पास एक जार फ़ाइल के अंदर एक संपत्ति संसाधन है लेकिन वह जार फ़ाइल है प्रोग्राम क्लासपाथ में नहीं।मैंने PropertyResourceBundle के लिए javadoc पढ़ा है और मुझे पता है कि मैं इनपुटस्ट्रीम के साथ ऐसा कर सकता हूं लेकिन इनपुटस्ट्रीम का मतलब है IO यह फ़ाइल को हर बार पढ़ेगा और मैं डिफ़ॉल्ट संसाधन बंडल कैशिंग खो देता हूं। क्या रिसोर्सबंडल क्लास को उस संसाधन से बंडल प्राप्त करने का कोई तरीका है जो उसके क्लासपाथ के बाहर है? –
इसके अलावा संसाधनबंडल.कंट्रोल को अनुकूलन के लिए कार्यान्वित किया जा सकता है लेकिन क्लासपाथ में संपत्ति फ़ाइलों को रखने के तरीके खोजने के लिए बेहतर है। –