Maven编译时出现中文乱码的完整解决教程

 更新时间:2025年10月14日 09:54:24   作者:一勺菠萝丶  
这篇文章主要为大家详细介绍了Maven编译时出现中文乱码的完整解决教程,适合Windows 用户,Maven 编译项目时终端或 IDEA 出现中文乱码的人群,快跟随小编一起了解下吧

适合:Windows 用户、Maven 编译项目时终端或 IDEA 出现中文乱码的人群

错误示例:

[WARNING] δ�� -source 8 һ������������·��

或者中文输出成一堆“乱码方块”。

一、为什么会出现乱码

这是因为:

  • Windows 控制台默认编码是 GBK
  • Maven(和 Java)输出使用 UTF-8 编码

两者不一致,中文显示就变成了乱码。

简单说:

Maven 说中文 → Windows 听不懂。

 二、快速解决方法

方法 1:临时解决(命令行直接改编码)

每次运行 Maven 前执行这条命令:

chcp 65001

然后再执行:

mvn clean package

作用:把当前 CMD 窗口改成 UTF-8 编码。

优点:立刻生效,不改配置。

缺点:每次都要手动执行。

方法 2:永久解决(配置 Maven 启动参数)

让 Maven 永远以 UTF-8 运行。

① 打开 Maven 安装目录

路径一般是:

D:\apache-maven-3.6.3\bin\mvn.cmd

② 在文件顶部加一行:

set MAVEN_OPTS=-Dfile.encoding=UTF-8

保存后关闭。

③ 验证是否生效:

mvn -v

如果没有乱码,说明成功。

方法 3:IDEA 用户设置(推荐)

如果你是在 IntelliJ IDEA 中运行 Maven 构建:

打开:File → Settings → Build, Execution, Deployment → Build Tools → Maven → Runner

VM Options 输入框中添加:

-Dfile.encoding=UTF-8

再打开:File → Settings → Editor → File Encodings

全部设置为 UTF-8

取消 “Transparent native-to-ascii conversion”

方法 4:全局永久生效(推荐高级玩家)

如果你希望任何时候打开命令行 Maven 都是 UTF-8:

在用户目录(C:\Users\<你的用户名>\)下创建一个文件:

mavenrc_pre.bat

写入内容:

chcp 65001 >nul
set MAVEN_OPTS=-Dfile.encoding=UTF-8

保存后重启命令行即可。

三、可选进阶:防止 XML 文件乱码

有时候 Maven 的中文乱码是因为配置文件(如 settings.xmlpom.xml)编码不正确。

确保它们都是 UTF-8 无 BOM 格式保存:

VS Code:

右下角点击编码 → “另存为编码” → 选择 UTF-8

Notepad++:

菜单栏「编码」→「转换为 UTF-8(无 BOM)」→ 保存

四、总结表格

场景原因解决方案
命令行乱码控制台是 GBKchcp 65001
Maven 报乱码输出编码非 UTF-8set MAVEN_OPTS=-Dfile.encoding=UTF-8
IDEA 编译乱码IDEA 未设 UTF-8IDEA → Settings → File Encoding → UTF-8
settings.xml 报错文件含 BOM 或全角空格改为 UTF-8(无 BOM)保存

结语

中文乱码看起来吓人,其实都是 编码不匹配 导致的。

一句话记住:

让系统、Maven、IDEA 一起说 UTF-8,世界就清净了。

到此这篇关于Maven编译时出现中文乱码的完整解决教程的文章就介绍到这了,更多相关Maven编译出现中文乱码解决方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 完美解决单例设计模式中懒汉式线程安全的问题

    完美解决单例设计模式中懒汉式线程安全的问题

    下面小编就为大家带来一篇完美解决单例设计模式中懒汉式线程安全的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • 基于java下载中getContentLength()一直为-1的一些思路

    基于java下载中getContentLength()一直为-1的一些思路

    下面小编就为大家带来一篇基于java下载中getContentLength()一直为-1的一些思路。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • java 中平方根(sqrt)算法 的实例详解

    java 中平方根(sqrt)算法 的实例详解

    这篇文章主要介绍了java 中平方根(sqrt)算法 的实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • IntelliJ IDEA中查看当前类的所有继承关系图

    IntelliJ IDEA中查看当前类的所有继承关系图

    今天小编就为大家分享一篇关于IntelliJ IDEA中查看当前类的所有继承关系图,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Java数据结构之队列与OJ题

    Java数据结构之队列与OJ题

    这篇文章主要介绍了Java数据结构之队列与OJ题,本文章先是对队列进行介绍,后又介绍了四道OJ相关的题目,来使其深入理解,需要的朋友可以参考下
    2023-01-01
  • Java递归造成的堆栈溢出问题及解决方案

    Java递归造成的堆栈溢出问题及解决方案

    在Java中,递归造成的堆栈溢出问题通常是因为递归调用的深度过大,导致调用栈空间不足,解决这类问题的一种常见方法是使用非递归的方式重写算法,即使用迭代替代递归,需要的朋友可以参考下
    2024-08-08
  • SpringBoot读取资源目录文件的9种方式

    SpringBoot读取资源目录文件的9种方式

    文章介绍了SpringBoot项目中9种读取资源文件的方法,涵盖ClassLoader、ResourceLoader、ClassPathResource等,推荐使用通用且灵活的ClassLoader和ResourceLoader来处理资源加载需求,感兴趣的朋友跟随小编一起看看吧
    2025-10-10
  • Java基础篇之反射机制示例详解

    Java基础篇之反射机制示例详解

    反射是Java可以提供的一个灵活又强大的功能,使用Java反射,您可以知道这个类在运行时具有什么属性和方法,也可以修改属性,调用方法,创建类的实例,这篇文章主要给大家介绍了关于Java基础篇之反射机制的相关资料,需要的朋友可以参考下
    2021-11-11
  • Idea中mapper注入报错问题及解决

    Idea中mapper注入报错问题及解决

    这篇文章主要介绍了Idea中mapper注入报错问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • java 基础教程之多线程详解及简单实例

    java 基础教程之多线程详解及简单实例

    这篇文章主要介绍了java 基础教程之多线程详解及简单实例的相关资料,线程的基本属性、如何创建线程、线程的状态切换以及线程通信,需要的朋友可以参考下
    2017-03-03

最新评论