在 CentOS 下 Java 编译失败,常见原因和排查办法可以按下面步骤来:
java -version
javac -version
javac 命令不存在 → 只装了 JRE,没装 JDKcommand not found → Java 未安装# CentOS 7
yum install -y java-1.8.0-openjdk-devel
# CentOS 8 / Stream
dnf install -y java-11-openjdk-devel
echo $JAVA_HOME
如果没有输出,建议配置:
vi /etc/profile
添加(路径按实际 JDK 安装位置):
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
生效:
source /etc/profile
error: cannot find symbol
✅ 解决:
importerror: unmappable character for encoding ASCII
✅ 解决:
javac -encoding UTF-8 Hello.java
package xxx does not exist
✅ 解决:
javac -cp lib/*.jar Hello.java
或使用 Maven:
mvn clean compile
lambda expressions are not supported
✅ 解决:
class X is public, should be declared in a file named X.java
✅ 解决:
public class 名一致javac 可用如果你方便的话,可以把 具体错误信息 或 编译命令 发出来,我可以直接帮你定位问题。