解决Ubuntu Java编译时编码问题可从以下方面入手:
- 设置系统环境变量
- 通过
export LANG=en_US.UTF-8和export LC_ALL=en_US.UTF-8命令设置系统编码为UTF-8,可添加到~/.bashrc中永久生效。
- 通过
- 指定编译器编码参数
- 使用
javac -encoding UTF-8 YourJavaFile.java命令,明确指定源文件编码为UTF-8。
- 使用
- 配置Java虚拟机参数
- 通过
-Dfile.encoding=UTF-8参数设置JVM默认编码,可在~/.bashrc中添加export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"。
- 通过
- 检查源文件编码格式
- 用
file -i YourJavaFile.java命令确认源文件是否为UTF-8编码,非UTF-8需转换(如iconv -f GBK -t UTF-8)。
- 用
- 安装中文字体(可选)
- 若终端显示乱码,安装中文字体(如
sudo apt install ttf-wqy-zenhei)并配置字体目录。
- 若终端显示乱码,安装中文字体(如
关键命令示例:
# 设置系统编码(临时)
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
# 编译时指定编码
javac -encoding UTF-8 HelloWorld.java
# 永久生效(添加到~/.bashrc)
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
echo 'export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"' >> ~/.bashrc
source ~/.bashrc