是否可以在不重启java进程的情况下设置java进程的语言环境(-Djava.util.locale=es_ES) ?



我需要支持国际化,因此用户将选择必须应用于服务器进程和操作系统的不同语言。我们正在使用CentOS

我们可以在不重启java进程的情况下设置java语言环境吗?请提供设置。

如果需要支持国际化,则不应该在JVM级别分配Locale。因此,您不应该使用-Duser.language-Duser.country。您也不应该使用Locale.setDefault()在代码中分配区域设置—这也将设置jvm范围的区域设置(这会影响所有运行的Java应用程序)。

我不清楚你想要什么,但我个人觉得你的问题有些误解。

如果您想支持I18n,您需要做的是检测 Locale并选择性地跟踪它们。根据应用程序和环境的类型,它可能非常简单(桌面应用程序中的Locale.getDefault(Locale.Category.FORMAT) ())或相当复杂(从请求上下文读取Locale并将其存储为web应用程序中的会话变量)。正如您所看到的,不需要分配缺省Locale,应该留给JVM启动代码。

最新更新