vscode 给 Maven 启动的 JVM 加上 `-Dfile.encoding=UTF-8`

你看到的 Default locale: zh_CN, platform encoding: GBK 是 JVM 启动时报出的系统环境信息 ,它取决于 Windows 系统的区域设置和 JVM 的启动参数。VSCode 本身的编辑器设置无法直接从根源上改掉这行信息,需要通过以下几种方式来处理:

  1. 改 Maven 运行时的 JVM 参数(最推荐,针对你的 Maven 使用场景)
    在 VSCode 的 settings.json 里配置 maven.terminal.customEnv,给 Maven 启动的 JVM 加上 -Dfile.encoding=UTF-8:
json 复制代码
"maven.terminal.customEnv": [
  {
    "environmentVariable": "MAVEN_OPTS",
    "value": "-Dfile.encoding=UTF-8"
  }
]

这样 Maven 执行构建时,JVM 内部文件编码会按 UTF-8 走,很多乱码问题会直接消失(但 mvn -v 显示的 platform encoding 可能仍读系统默认值)。

  1. 让 VSCode 启动的终端/JVM 全局走 UTF-8(更彻底)
    在 VSCode 的 settings.json 里给集成终端加环境变量:
json 复制代码
"terminal.integrated.env.windows": {
  "JAVA_TOOL_OPTIONS": "-Dfile.encoding=UTF-8"
}

同时可在终端 profile 里执行 chcp 65001(或配置到 PowerShell 参数),把终端代码页切到 UTF-8。

  1. (可选)修改 Windows 系统区域为 UTF-8(会影响整个系统)
    控制面板 → 区域 → 管理 → 更改系统区域设置 → 勾选 "Beta: 使用 Unicode UTF-8 提供全球语言支持" → 重启。
    改完后再运行 mvn -v,platform encoding 有可能变成 UTF-8,但这项是系统级变更,部分老程序可能不兼容。

如果你愿意,我可以按你现在的用法(是主要在 VSCode 里用 Maven 插件跑命令/生命周期 ,还是用 Run/Debug 跑 Java 程序)给你一份最合适的 settings.json 配置清单?

相关推荐
晒太羊的猫3 小时前
jvm面试题
jvm
夜之眷属7 小时前
Core dump 崩溃排查:JVM 宕机后,那份 core 文件怎么用 gdb 还原现场
java·运维·服务器·jvm
用户094248568038 小时前
第31章:JVM字节码解释器与模板解释器源码路径
java·jvm
阿俊-全栈开发10 小时前
LikeShop 版本升级与备份:从旧版平滑迁移的完整步骤
jvm·数据库·oracle·开源·likeshop·likeshop开源商城
Nebula_g12 小时前
JavaSE加强:线程Thread(线程安全重点)
java·开发语言·jvm·算法·javase·技术栈
JAVA面经实录91712 小时前
Java高级后端 · 全套面试通关手册(线上故障排查)
java·jvm·面试
sibylyue15 小时前
SQLite 运行模式
java·jvm·sqlite
toooooop815 小时前
宝塔Python项目管理器:环境变量踩坑记录
java·jvm·python
佳児素花痴╮1 天前
线程知识点
java·开发语言·jvm
用户094248568031 天前
第29章:【OpenJDK中级篇综合实战】百万长连接网关的JVM稳定性工程
java·jvm