微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Maven默认语言环境与OS语言环境不同

当我输入
mvn --version

在命令提示符中,我看到:

Default Locale : en_US

但是我的系统区域设置是tr_TR

当我启动没有maven的Java SE项目并运行Locale.getDefault()时,tr_TR返回正常.但是当我运行Maven项目然后运行Locale.getDefault()时,它会返回我不喜欢的en_US.

如何告诉maven我的认语言环境是TR?

解决方法

您可以使用此命令
set MAVEN_OPTS= -Duser.language=tr

无论如何,最好的解决方案是将这些信息放在POM文件中,而不是通过命令行.特别是你必须处理Maven-Surefire-Plugin的配置

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.9</version>
        <configuration>
            <systemPropertyVariables>
                <user.language>tr</user.language>
                <user.region>TR</user.region>
            </systemPropertyVariables>
        </configuration> 
    </plugin>

第二个问题:
一个问题,如果我可以,我在我的语言环境中运行一个Web应用程序,但它支持让我们说德语,英语..并且您的系统区域设置是DE.我可以从您的请求中获取您的系统区域设置吗?或者也许是您喜欢的浏览器语言?

您可以从请求中获取这些信息.这是servlet中的一个例子.

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.Locale;

public class GetLocale extends HttpServlet{

  public void doGet(HttpServletRequest request,HttpServletResponse response)throws servletexception,IOException
  {
      Locale locale = request.getLocale();
      String language = locale.getLanguage();
      String country = locale.getCountry();

      response.setContentType("text/html");
      PrintWriter out = response.getWriter();

      out.println(language + ":" + country);
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐