温馨提示×

centos为何编译java报错

小樊
46
2026-09-09 08:18:48
栏目: 编程语言

在 CentOS 上编译 Java 报错,原因可能有很多种,下面按常见原因 + 对应解决办法给你梳理一下,你可以对照看是哪一种。


一、没有安装 JDK(最常见)

现象

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

二、Java 版本不匹配

现象

invalid source release: 11
unsupported class file major version

原因

  • 代码用 Java 11 写的,但用的是 Java 8 编译
  • 或反过来

解决 查看版本:

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

五、使用了第三方库但没指定 classpath

现象

package xxx does not exist
cannot find symbol

解决

javac -cp lib/*.jar Hello.java

六、权限问题

现象

Permission denied

解决

chmod +x javac

或确保你有权限写当前目录。


七、CentOS 自带 gcj 干扰(老系统)

现象

gcj: command not found
javac: No such file or directory

解决 卸载 gcj:

yum remove gcc-java

再装 OpenJDK。


八、如果你是在编译 OpenJDK 本身

那是另一套流程,需要:

  • bootstrap JDK
  • 一堆开发库(gcc, make, libXtst-devel 等)

建议你这样排查

你可以把完整报错信息贴出来,我可以精确判断。
常见问题基本就是:

❌ 没装 javac
❌ Java 版本不对
❌ 编码 / classpath 问题

如果你愿意,可以把:

java -version
javac -version

以及完整报错发给我。

0