在 CentOS 上调试 Java 编译错误,可以从「看错误 → 定位代码 → 用工具分析」三步来做。下面按常见场景说明。
在 CentOS 终端编译:
javac Hello.java
如果有错误,会类似:
Hello.java:5: error: cannot find symbol
System.out.println(msg);
^
symbol: variable msg
✅ 重点看三处:
:5)package com.xxx does not exist
检查:
echo $JAVA_HOME
which javac
确认 JDK 已安装(不是只有 JRE):
java -version
javac -version
若无 javac:
sudo yum install java-1.8.0-openjdk-devel
cannot find symbol
编译多文件时:
javac -cp . com/example/*.java
或指定输出目录:
javac -d out -cp lib/* src/**/*.java
CentOS 默认可能是 UTF-8 或 GBK
javac -encoding UTF-8 Hello.java
unsupported class file major version
查看 Java 版本:
java -version
javac -version
若不一致,使用统一版本:
sudo alternatives --config java
sudo alternatives --config javac
javac -Xlint:all Hello.java
能看到潜在问题(未使用变量、废弃 API 等)
在 CentOS 上可用:
远程开发:
ssh -X user@centos
#!/bin/bash
set -x
javac -verbose Hello.java
如果是:
Exception in thread "main"
那是 运行时错误,不是 javac 问题:
java Hello
调试运行时:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 Hello
# 1. 检查环境
java -version
javac -version
# 2. 重新编译
javac -encoding UTF-8 -Xlint:all Hello.java
# 3. 运行
java Hello
如果你愿意,可以把 具体报错信息贴出来(直接复制终端内容),我可以帮你逐行分析。