在 CentOS 上编译 Java 报错,原因可能有很多种,下面按常见原因 + 对应解决办法给你梳理一下,你可以对照看是哪一种。
现象
javac: command not found
或
gcc: error: unrecognized command line option ‘-source’
原因 只装了 JRE,没有 JDK;或系统根本没装 Java。
解决
yum install -y java-1.8.0-openjdk-devel
或
yum install -y java-11-openjdk-devel
验证:
javac -version
现象
invalid source release: 11
unsupported class file major version
原因
解决 查看版本:
java -version
javac -version
指定版本编译:
javac -source 1.8 -target 1.8 Hello.java
现象
javac: command not found
但 java -version 能跑
解决 编辑:
vi /etc/profile
添加:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
生效:
source /etc/profile
现象
error: illegal character
error: unmappable character for encoding ASCII
原因 源码是 UTF-8,但终端默认编码不对
解决
javac -encoding UTF-8 Hello.java
现象
package xxx does not exist
cannot find symbol
解决
javac -cp lib/*.jar Hello.java
现象
Permission denied
解决
chmod +x javac
或确保你有权限写当前目录。
现象
gcj: command not found
javac: No such file or directory
解决 卸载 gcj:
yum remove gcc-java
再装 OpenJDK。
那是另一套流程,需要:
gcc, make, libXtst-devel 等)你可以把完整报错信息贴出来,我可以精确判断。
常见问题基本就是:
❌ 没装 javac
❌ Java 版本不对
❌ 编码 / classpath 问题
如果你愿意,可以把:
java -version
javac -version
以及完整报错发给我。