लिनक्स/यूनिक्स/मैक में, सेटिंग्स LC_ALL
और LANG
जावा प्रोग्राम के लिए डिफ़ॉल्ट लोकेल को नियंत्रित कर सकते हैं। विंडोज़ में, क्षेत्रीय और भाषा विकल्पों के तहत, लोकेशन नियंत्रण कक्ष से सेट होते हैं।
जब JVM एक * nix वातावरण में शुरू होता है, यह ऐसा करेंगे:
- , पर्यावरण के लिए
LANG
तो
- के लिए
LC_ALL
- तो
LC_ALL
मौजूद नहीं है पर्यावरण के लिए स्कैन स्कैन JVM सेटिंग user.language
सेट है, पर्यावरण चर के स्थान पर इसका उपयोग करें।
- कुछ भी नहीं सेट है, तो
en_US
करने के लिए डिफ़ॉल्ट (मेरा मानना है कि इस अंतिम विफलता मामला है)
अपने वातावरण में, आप C
को LC_ALL
सेट, जो सिर्फ सी स्थान है। यह मूल रूप से उन दिनों के लिए पारंपरिक गिरावट है जब स्थानीय लोगों का उपयोग नहीं किया जाता था।
आप अपने मामले में LC_ALL
बदल सकते हैं, और अपना JVM पुनरारंभ करें, और आपको java.util.Locale.getDefault()
के लिए एक नया मान प्राप्त करना चाहिए।
उदाहरण:
import java.util.Locale;
public class LocaleTest {
public static void main(String[] args) {
System.out.println(Locale.getDefault());
}
}
यहाँ चल रहा है:
> LC_ALL=en_UK java LocaleTest
en_UK
> LC_ALL=ja_JP java LocaleTest
ja_JP
भी ध्यान रखें कि आप जावा 1.7.0-b147 चला रहे हैं, वहाँ JRE के लिए पर्यावरण सेटिंग्स पहचान नहीं के साथ एक बग है लोकेल, और हमेशा डिफ़ॉल्ट सिस्टम लोकेल का उपयोग करेगा।
बग यहाँ रिपोर्ट: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7073906
आप JVM को पुनः आरंभ किया था? –