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

前端之家收集整理的这篇文章主要介绍了java – Maven默认语言环境与OS语言环境不同前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我输入
  1. mvn --version

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

Default Locale : en_US

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

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

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

解决方法

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

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

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-surefire-plugin</artifactId>
  4. <version>2.9</version>
  5. <configuration>
  6. <systemPropertyVariables>
  7. <user.language>tr</user.language>
  8. <user.region>TR</user.region>
  9. </systemPropertyVariables>
  10. </configuration>
  11. </plugin>

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

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

  1. import java.io.*;
  2. import javax.servlet.*;
  3. import javax.servlet.http.*;
  4. import java.util.Locale;
  5.  
  6. public class GetLocale extends HttpServlet{
  7.  
  8. public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
  9. {
  10. Locale locale = request.getLocale();
  11. String language = locale.getLanguage();
  12. String country = locale.getCountry();
  13.  
  14. response.setContentType("text/html");
  15. PrintWriter out = response.getWriter();
  16.  
  17. out.println(language + ":" + country);
  18. }
  19. }

猜你在找的Java相关文章