2012-11-29 19 views
6

में सच करने के लिए sun.locale.formatasdefault स्थापना निम्नलिखित कोड में मदद मिलेगी मेरी समस्या को वर्णन:।जावा 7

import java.util.Locale; 
import java.text.*; 

public class LocaleTest { 
    public static void main(String[] args) { 
     System.out.println(Locale.getDefault()); 
     System.out.println("java-version-" +System.getProperty("java.version")); 
     System.setProperty("sun.locale.formatasdefault","true"); 
     System.out.println("prop:" +System.getProperty("sun.locale.formatasdefault")); 
     System.out.println("getLocale-" +Locale.getDefault()); 
    } 
} 

हम जानते हैं, वहाँ, Locale.getDefault() में हालांकि के रूप में जावा 7 में बग है ओरेकल द्वारा अनुशंसित I ने सिस्टम प्रॉपर्टी 'sun.locale.formatasdefault' को सत्य पर सेट किया है। भले ही मैं अब अपना एम/सी लोकेल प्राप्त कर रहा हूं, यह हमेशा en_US के रूप में दिख रहा है, भले ही मेरा एम/सी लोकेल fr_BE पर सेट हो।

यहाँ ऊपर कोड के उत्पादन, संकलित जो जाता है और जावा 1.7.0_09 पर चलाया जाता है:

 
en_US 
java-version-1.7.0_09 
prop:true 
getLocale-en_US 

क्या इस प्रकार कारण हो सकता है पर कोई विचार? अग्रिम में बहुत धन्यवाद।

उत्तर

4

आपको उस सिस्टम प्रॉपर्टी को से पहले अपने JVM को शुरू करने की आवश्यकता है। आप आदेश पंक्ति तर्क के माध्यम से ऐसा कर सकते हैं:

java -Dsun.locale.formatasdefault=true TargetClass 

या वातावरण जहां आप JVM की शुरूआत को नियंत्रित नहीं करते में, आप इसे _JAVA_OPTIONS वातावरण चर के माध्यम से सेट कर सकते हैं:

  • * निक्स

    export _JAVA_OPTIONS=-Dsun.locale.formatasdefault=true 
    
  • विंडोज

    SET _JAVA_OPTIONS=-Dsun.locale.formatasdefault=true 
    

Windows में, अगर आप चाहते हैं परिवर्तन लागू करने के लिए न केवल कि सीएमडी लेकिन सिस्टमवाइड के लिए, आप एक Windows सिस्टम चर JAVA_TOOL_OPTIONS आपके उत्तर के लिए

+0

धन्यवाद बनाते हैं, आप कृपया कैसे विस्तृत कर सकते हैं जेवीएम शुरू करने से पहले सिस्टम प्रॉपर्टी सेट करें। अगर मैं प्रोग्राम को जावा-डीसुन.लोकेल.फॉर्मैट्सडेफॉल्ट = सच्ची कक्षा नाम के रूप में चलाता हूं तो यह काम करता है। मुझे इस काम पर आवेदन करने की ज़रूरत है जहां कक्षाएं हैं, तो मैं यह कैसे करता हूं। – vish

+0

यह ठीक है कि आप स्टार्टअप से पहले संपत्ति निर्दिष्ट करेंगे। आप आईडीई – Perception

+0

धन्यवाद *** के भीतर अपना प्रोग्राम या आईडीई लॉन्च करने से पहले या अपने कार्यक्रम स्तर *** पर लॉन्च करने से पहले अपने पर्यावरण में संपत्ति को भी सेट कर सकते हैं, मैं जवाब के बहुत करीब हूं लेकिन थोड़ा उलझन में हूं यह, क्या आप कृपया विस्तृत कर सकते हैं कि एसईटी sun.locale.formataadefault = सही विंडोज पर्यावरण संपत्ति में कैसे सेट करें यानी फ़ाइल को बदलने की जरूरत है। – vish

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