2010-02-26 3 views
6

मैं ग्रहण चला रहा हूं और कुछ अलग-अलग फ़ाइलों के साथ हमारे संसाधन बंडल को आजमाने का एक सरल परीक्षण कार्यक्रम बनाने की कोशिश कर रहा हूं। फ़ाइल को उचित रूप से ResourceFile_us_US.properties के रूप में नामित किया गया है। लेकिन मुझे GetBundle() कॉल पर अपवाद मिल रहा है क्योंकि यह स्पष्ट रूप से फ़ाइल नहीं ढूंढ सकता है। यह कहां स्थित होना चाहिए ताकि यह पाया जा सके?ResourceBundle.getBundle ("संसाधन फ़ाइल", नया लोकेल ("हम", "यूएस") कहां फ़ाइल ढूंढता है?

+1

us_US? क्या आप en_US चाहते हैं? –

उत्तर

1

मुझे विश्वास है कि यह सिर्फ कक्षा में दिखता है।

12

आप जानते हैं कि जावा एक विशिष्ट लोकेल में गुण फ़ाइल की तलाश में है। आप परेशान हो सकते हैं क्यों जावा शिकायत करता रहता है कि उसे वहां एक गुण फ़ाइल नहीं मिल सकती है जो ठीक है। कुछ बातें जब त्रुटियों के इस प्रकार डिबगिंग को ध्यान में रखना:

  1. ये संसाधन गुण फ़ाइलों classloader, जावा वर्गों के लिए समान द्वारा लोड किए गए हैं। तो आपको उन्हें अपने रनटाइम क्लासपाथ में शामिल करने की आवश्यकता है।

  2. इन संसाधनों में पूरी तरह से योग्य-संसाधन-नाम है, जो पूरी तरह से योग्य-श्रेणी-नाम के समान है, अंश आप अपने जावा स्रोत फ़ाइल में संसाधन आयात नहीं कर सकते हैं। क्यूं कर? क्योंकि इसका नाम स्ट्रिंग का रूप लेता है।

  3. ResourceBundle.getBundle("config") क्लासलोडर को "config" नामक संसाधन लोड करने के लिए डिफ़ॉल्ट पैकेज (यानी, कोई पैकेज नहीं) को लोड करने के लिए कहता है। इसका मतलब वर्तमान पैकेज में संसाधन नहीं है जिसमें रेफरेंसिंग क्लास है।

  4. ResourceBundle.getBundle("com.cheng.scrap.config") classloader बताता पैकेज के साथ "config" नामित संसाधन लोड करने के "com.cheng.scrap." इसकी पूरी तरह से योग्य-संसाधन नाम "com.cheng.scrap.config"

अधिक है: Can't find bundle for base name com...config, locale zh_CN

चीयर्स।

1

दो में से एक:

  1. /src/संसाधनों सुनिश्चित करें कि आप संसाधन बंडल फ़ाइल के नाम में स्थान शामिल करें। उदाहरण के लिए ज़िम्बाब्वे के लिए, यह संसाधन Bundle_en_ZW.properties होगा और आप इसे संसाधन बंडल संसाधन बंडल = संसाधन Bundle.getBunndle ("संसाधन बंडल", Locale.getDefault()) के रूप में लोड करेंगे;

  2. आपके क्लासपाथ में। सुनिश्चित करें कि calsspath वातावरण चर

6

सेट किया गया है आप एक पैकेज resources बना सकते हैं और फ़ाइल hello_en_US.properties इसके अंदर है, जो सामग्री है डाल दिया:

हैलो = नमस्ते विश्व !!

आप निम्नलिखित कोड का उपयोग कर नमस्कार की सामग्री मुद्रित कर सकते हैं:

package localization; 

import java.util.Locale; 
import java.util.ResourceBundle; 

public class ResourceBundleDemo { 

public static void main(String[] args) { 

    Locale en_US = new Locale("en", "US"); 
    ResourceBundle bundle = ResourceBundle.getBundle("resources.hello", en_US); 

    // print the value of the key "hello" 
    System.out.println("" + bundle.getString("hello")); 

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