Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 除了从windows属性而不是JVM获取国家ISO-2代码外,还有其他方法吗_Java_Windows_Jvm_Locale - Fatal编程技术网

Java 除了从windows属性而不是JVM获取国家ISO-2代码外,还有其他方法吗

Java 除了从windows属性而不是JVM获取国家ISO-2代码外,还有其他方法吗,java,windows,jvm,locale,Java,Windows,Jvm,Locale,基本上正如标题所述,我已经尝试过: Locale currentLocale=Locale.getDefault(); System.out.println(currentLocale.getDisplayLanguage()); System.out.println(currentLocale.getDisplayCountry()); System.out.println(currentLocale.getLanguage()); System.out.println(currentLoca

基本上正如标题所述,我已经尝试过:

Locale currentLocale=Locale.getDefault();
System.out.println(currentLocale.getDisplayLanguage());
System.out.println(currentLocale.getDisplayCountry());
System.out.println(currentLocale.getLanguage());
System.out.println(currentLocale.getCountry());
System.out.println(System.getProperty(“user.country”);
System.out.println(System.getProperty(“user.language”);
当我在寡妇的环境中设置了完全不同的东西时,这一切都给了我我们或英语。 请给我任何建议。
因此,我希望得到有争议的代码,例如,如果我在系统中设置了Poland,我希望是“PL”,但我得到的是“US”

默认Java语言环境不一定与系统语言环境相同,因为它可以被覆盖

  • 具有
    user.country
    user.language
    user.variant
    系统属性
  • 通过调用
    Locale.setDefault()
有非标准的未记录API用于获取操作系统提供的区域设置信息。它是在Windows Vista或更高版本上实现的。请尝试以下代码段

import sun.util.locale.provider.HostLocaleProviderAdapter;

...

    static String getHostCountry() {
        for (Locale locale : new HostLocaleProviderAdapter().getAvailableLocales()) {
            if (!locale.getCountry().isEmpty()) {
                return locale.getCountry();
            }
        }
        return null;
    }

默认Java语言环境不必与系统语言环境相同,因为它可以被重写

  • 具有
    user.country
    user.language
    user.variant
    系统属性
  • 通过调用
    Locale.setDefault()
有非标准的未记录API用于获取操作系统提供的区域设置信息。它是在Windows Vista或更高版本上实现的。请尝试以下代码段

import sun.util.locale.provider.HostLocaleProviderAdapter;

...

    static String getHostCountry() {
        for (Locale locale : new HostLocaleProviderAdapter().getAvailableLocales()) {
            if (!locale.getCountry().isEmpty()) {
                return locale.getCountry();
            }
        }
        return null;
    }

请提供您期望的输出示例,以及您看到的输出。请提供您期望的输出示例,而您看到的输出。linux呢?@DamianHong MinhNguyen在linux上只需检查
LC_ALL
LANG
环境变量。linux呢?@DamianHong MinhNguyen在linux上只需检查
LC_ALL
LANG
环境变量。