il seguente codice contribuirà a illustrare il mio problema:Impostazione sun.locale.formatasdefault 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());
}
}
Come sappiamo, c'è bug in Java 7, in Locale.getDefault() Tuttavia, come. raccomandato da Oracle ho impostato la proprietà di sistema 'sun.locale.formatasdefault' su true. Anche se ora sto ottenendo il mio m/c Locale, viene sempre visualizzato come en_US anche se il mio m/c Locale è impostato su fr_BE.
Ecco l'output del codice di cui sopra, che viene compilato ed eseguito su Java 1.7.0_09:
en_US java-version-1.7.0_09 prop:true getLocale-en_US
Dei pensieri su che cosa potrebbe causare in tal modo? Molte grazie in anticipo.
grazie per la risposta, ti invitiamo a elaborare come imposta la proprietà di sistema prima di avviare JVM. Se eseguo il programma come java -Dsun.locale.formatasdefault = true className allora funziona. Devo farlo su un'applicazione dove ci sono un numero di classi, quindi come faccio. – vish
Questo è esattamente il modo in cui si specifica la proprietà prima dell'avvio. Puoi anche impostare la proprietà nel tuo ambiente prima di avviare il tuo programma o IDE, o anche a livello di programma *** dentro *** IDE – Perception
grazie Perception, sono molto vicino alla risposta ma avendo poca confusione su questo, così puoi per favore elaborare come impostare SET sun.locale.formataadefault = true Windows in proprietà environment cioè quale file deve essere modificato. – vish