温馨提示×

ubuntu java编译乱码怎么办

小樊
41
2026-10-13 04:21:45
栏目: 编程语言

在 Ubuntu 下用 javac 编译 Java 出现乱码,通常不是系统坏了,而是字符编码不一致导致的。下面按「最常见 → 进阶」给你一套解决方案。


一、先确认问题根源(很重要)

乱码一般出现在两种地方:

  1. 编译时报错信息乱码
  2. Java 源码里中文,编译/运行后乱码

二、最常见原因 & 解决办法(90% 情况)

✅ 1. 源文件编码 ≠ 编译编码

比如:

  • 源文件是 UTF-8
  • 但 javac 默认按系统编码(可能是 GBK / ANSI_X3.4)

✅ 解决:编译时指定编码

javac -encoding UTF-8 Hello.java

✅ 这是最常用、最有效的办法

如果你用 IDE(IDEA / Eclipse),也要设置:

  • 文件编码:UTF-8
  • 编译器编码:UTF-8

三、Ubuntu 系统编码检查

查看当前编码

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

(永久生效可写入 ~/.bashrc)


四、运行 Java 也乱码?

运行时也要指定编码

java -Dfile.encoding=UTF-8 Hello

五、Java 代码里“硬编码中文”乱码

例如:

System.out.println("中文");

如果乱码:

✅ 保证三点一致:

  1. 源文件 UTF-8
  2. javac -encoding UTF-8
  3. 终端 UTF-8

终端检查:

echo $LANG

六、终端本身乱码(少见)

如果你用的是:

  • 老版 xterm
  • 远程连接工具(Putty / SecureCRT)

请设置:

  • 字符集:UTF-8
  • 字体:支持中文

七、一键推荐配置(总结)

# 编译
javac -encoding UTF-8 xxx.java

# 运行
java -Dfile.encoding=UTF-8 xxx

# 系统
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8

八、如果你愿意,我可以更精准帮你

你可以告诉我:

  1. Ubuntu 版本
  2. Java 版本(java -version)
  3. 乱码截图 or 报错内容
  4. 是编译乱码还是运行乱码

我可以直接帮你定位 ✅

0 踩