2008-09-15 64 views
30

Cuando uso la configuración regional java predeterminada en mi máquina Linux, aparece con la configuración regional de EE. UU., ¿Dónde la cambio para que salga con la configuración regional correcta?Configuración de la configuración regional de Java

+0

El método Locale.getavailablelocale() no devuelve en_MY, ¿por qué? devuelve 155 configuraciones regionales – VedX

+0

@kekan: prueba Locale.getDefault(); – user1283704

+0

Tenga cuidado con [Cambios locales predeterminados de Java 7] (http://stackoverflow.com/questions/7107972/java-7-default-locale). – Vadzim

Respuesta

14

Creo que Java lo recoge de las variables de entorno en las que se lanzó, por lo que deberá asegurarse de que las variables de entorno LANG y LC_ * estén configuradas correctamente.

La configuración regional manpage tiene información completa sobre dichas variables de entorno.

+0

¿Qué son las variables de entorno LC_ *? – Leonel

+0

Si su programa formatea números, probablemente quiera configurar LC_ALL. Ver mi respuesta a continuación. – cayhorstmann

+0

Tenga en cuenta que esto está incompleto. Estoy ejecutando macOS Sierra y tengo LANG y LC_ALL establecidos como "en_US.UTF8". Sin embargo, por algún motivo, Java presenta 'user.language = en',' user.country = US' y 'user.country.format = DE'. – Gunnar

13

Puede llamar durante init o lo que sea Locale.setDefault() o -Duser.language =, -Duser.country = y -Duser.variant = en la línea de comando. Here's something on Sun's site.

+1

Los idiomas admitidos se enumeran en http://www.oracle.com/technetwork/java/javase/locales-137662.html#translation – koppor

0

Una forma de controlar la configuración regional es establecer las propiedades del sistema java user.language y user.region.

40

Con las propiedades user.language, user.country y user.variant.

Ejemplo:

java -Duser.language=th -Duser.country=TH -Duser.variant=TH SomeClass

+2

Esto funcionará, pero es más seguro y más seguro para el futuro configurar el entorno y dejar que el JRE determine los valores correctos para estos. – Air

1

Si se encuentra en Mac, el simple uso de Preferencias del Sistema -> Idiomas y arrastrando la lengua para probar al principio (antes de Inglés) se asegurará de que la próxima vez que abra la aplicación , el lugar correcto es probado !!

17

Tuve que controlar esto en un script que se ejecutó en una máquina con configuración regional francesa, pero un programa específico de Java tuvo que ejecutarse con en_US. Como ya se ha señalado, las siguientes obras:

java -Duser.language=en -Duser.country=US ... 

Alternativamente,

LC_ALL=en_US.UTF-8 java ... 

prefiero este último.

2

Usted puede cambiar en la consola:

$ export LANG=en_US.utf8 
+0

Primero, necesita escribir 'utf-8' en lugar 'utf8'. En segundo lugar, solo funciona la parte de codificación, pero no la parte de lenguaje. –

+0

¡Finalmente! He estado buscando mucho tiempo para esto! ¡Gracias! –

9

Para herramientas como jarsigner que está implementado en Java.

JAVA_TOOL_OPTIONS=-Duser.language=en jarsigner 
+2

Este entorno funciona mejor, solo agrega exportar JAVA_TOOL_OPTIONS = -Duser.language = en tu ~/.profile –

+0

Ver http://stackoverflow.com/questions/28327620/difference-between-java-options-java-tool-options -and-java-opts/ – Vadzim

+0

¡Finalmente, esta es la opción que quiero! java y javac no parecen respetar LANG y LC_ALL. –

1

en Linux, crear el archivo en /etc/default/locale con el siguiente contenido

LANG=en.utf8 

y luego usar el comando source exportar esta variable mediante la ejecución de

source /etc/default/locale 

El comando fuente establece la variable permanentemente.

Cuestiones relacionadas