当我输入
- 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);
- }
- }