温馨提示×

centosjava编译乱码怎么处理

小樊
39
2026-10-12 03:52:17
栏目: 编程语言

在 CentOS 上用 Java 编译出现乱码,通常是系统字符集、文件编码、javac 编码参数不一致导致的。下面按常见场景给你一套处理方案。


一、先确认系统字符集(最常见原因)

1. 查看当前编码

locale

如果看到类似:

LANG=
LC_ALL=

或不是 UTF-8,就容易乱码。

2. 设置为 UTF-8

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

永久生效(推荐):

vi /etc/profile

添加:

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

然后:

source /etc/profile

如果系统没有 zh_CN.UTF-8,需要:

localedef -i zh_CN -f UTF-8 zh_CN.UTF-8

二、确认 Java 源文件编码

你的 .java 文件必须是 UTF-8(或你指定的编码)

查看文件编码:

file -i Test.java

如果不是 UTF-8,可转换:

iconv -f GBK -t UTF-8 Test.java -o Test_utf8.java

三、编译时指定编码(非常重要)

1. 使用 javac 指定编码

javac -encoding UTF-8 Test.java

如果是 GBK 文件:

javac -encoding GBK Test.java

✅ 这是解决乱码最直接的方法


四、运行时也指定编码

java -Dfile.encoding=UTF-8 Test

五、IDE / Maven 场景

Maven 项目

pom.xml 中指定:

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

IntelliJ IDEA

  • File → Settings → Editor → File Encodings
  • 全部设置为 UTF-8

六、常见错误总结

现象 原因
编译时中文注释乱码 javac 未指定 -encoding
运行时日志乱码 -Dfile.encoding 未设置
SecureCRT/Xshell 显示乱码 终端编码非 UTF-8
Windows 写文件 CentOS 编译乱码 GBK → UTF-8 未转换

七、一键推荐配置(最稳)

export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
javac -encoding UTF-8 *.java
java -Dfile.encoding=UTF-8 Main

如果你愿意,可以把:

  • 报错信息
  • locale 输出
  • .java 文件来源(Windows / Mac / Git)

发给我,我可以帮你精确定位。

0 踩