2012-11-29 9 views
6

der folgende Code mein Problem illustrieren helfen:Einstellung sun.locale.formatasdefault auf true in Java 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()); 
    } 
} 

Wie wir wissen, gibt es Fehler in Java 7, in Locale.getDefault() jedoch wie. Empfohlen von Oracle Ich habe die Systemeigenschaft 'sun.locale.formatasdefault' auf 'true' gesetzt. Obwohl ich jetzt mein m/c-Gebietsschema erhalte, wird es immer als en_US angezeigt, obwohl mein m/c-Gebietsschema auf fr_BE gesetzt ist.

Hier die Ausgabe des obigen Code, der auf Java 1.7.0_09 kompiliert und ausgeführt wird:

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

Irgendwelche Gedanken auf, was somit möglicherweise verursachen? Vielen Dank im Voraus.

Antwort

4

Sie müssen diese Systemeigenschaft vor Ihre JVM starten. Sie können diese Zeilenargumente über dieses Kommando aus:

java -Dsun.locale.formatasdefault=true TargetClass 

oder in Umgebungen, in denen Sie nicht den Start der JVM steuern, können Sie es über _JAVA_OPTIONS Umgebungsvariable:

  • * Nix

    export _JAVA_OPTIONS=-Dsun.locale.formatasdefault=true 
    
  • Windows-

    SET _JAVA_OPTIONS=-Dsun.locale.formatasdefault=true 
    

In Windows, wenn Sie die Änderung angewendet werden soll nicht nur für das CMD aber system erstellen Sie eine Windows-Systemvariable JAVA_TOOL_OPTIONS

+0

Dank für Ihre Antwort, können Sie bitte erarbeiten, wie man Setze die Systemeigenschaft vor dem Start von JVM.Wenn ich das Programm als java -Dsun.locale.formatasdefault = true className ausführe, dann funktioniert es.Ich muss dies auf Anwendung, wo es eine Anzahl von Klassen gibt, dann wie ich das mache. – vish

+0

Genau so würden Sie die Eigenschaft vor dem Start angeben. Sie können die Eigenschaft auch in Ihrer Umgebung einrichten, bevor Sie Ihr Programm oder IDE starten, oder sogar auf einer Pro-Level-Ebene *** innerhalb der IDE – Perception

+0

danke Perception, ich bin sehr nah an der Antwort, aber mit wenig Verwirrung auf dies, so können Sie bitte, dass, wie SET SET sun.locale.formataadefault = True Windows in Umwelt-Eigenschaft dh, welche Datei geändert werden muss. – vish

Verwandte Themen