温馨提示×

centos java编译乱码怎么解

小樊
55
2026-09-27 11:59:09
栏目: 编程语言

在 CentOS 上用 javac 编译 Java 出现乱码,通常不是 Java 本身的问题,而是系统/终端编码 ≠ 文件编码导致的。下面按最常见情况一步步解决。


一、先确认系统编码(最关键)

locale

正常应该是:

LANG=zh_CN.UTF-8
LC_ALL=zh_CN.UTF-8

如果不是 UTF-8,先改:

临时生效

export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8

永久生效(CentOS 7/8)

localectl set-locale LANG=zh_CN.UTF-8

或编辑:

vi /etc/locale.conf

内容:

LANG="zh_CN.UTF-8"

二、确认 Java 文件编码

查看文件编码:

file -i YourFile.java

如果是 iso-8859-1 / gbk,而系统是 UTF-8,就会乱码。

解决方式 1(推荐):编译时指定编码

javac -encoding UTF-8 YourFile.java

如果是 GBK 文件:

javac -encoding GBK YourFile.java

三、确保终端是 UTF-8

如果你是用:

  • Xshell
  • SecureCRT
  • PuTTY

请检查:

  • 终端编码设置为 UTF-8
  • 字体支持中文

四、Java 运行时也乱码?

java -Dfile.encoding=UTF-8 YourMainClass

五、IDE / Maven 场景

Maven 编译乱码

在 pom.xml 中加:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

六、快速排查清单(照着做)

  1. ✅ locale 是 UTF-8
  2. ✅ javac -encoding UTF-8
  3. ✅ 终端 UTF-8
  4. ✅ 文件本身是 UTF-8

如果你愿意,可以把:

  • locale 输出
  • file -i xxx.java 输出
  • 报错截图或文字

发出来,我可以帮你精准定位是哪一层乱码。

0 踩