在 CentOS 上“找不到 Java 编译命令(javac)”通常有以下几种常见原因,你可以对照看看:
javac 是 JDK(Java Development Kit) 里的命令,而 JRE(Java Runtime Environment) 只有 java,没有 javac。
which java
which javac
如果 java 有,但 javac 没有,说明只装了 JRE。
# OpenJDK 8
yum install -y java-1.8.0-openjdk-devel
# 或 OpenJDK 11
yum install -y java-11-openjdk-devel
⚠️ 一定要带
-devel,否则没有javac
即使装了 JDK,如果 PATH 里没包含 javac 路径,也会提示找不到。
find / -name javac 2>/dev/null
常见路径:
/usr/lib/jvm/java-1.8.0-openjdk/bin/javac
vi /etc/profile
添加:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
使配置生效:
source /etc/profile
alternatives 但没配置CentOS 常用 alternatives 管理 Java。
alternatives --config java
alternatives --config javac
如果 javac 没出现,说明没注册。
Minimal 版默认 不装任何 Java。
java -version
如果直接报 command not found,说明啥都没装。
java 而不是 javacjava ➜ 运行 .classjavac ➜ 编译 .java很多人误以为 java Test.java 能编译,其实不行(Java 11+ 才支持单文件直接运行)。
java -version
javac -version
which javac
rpm -qa | grep jdk
如果你愿意,可以把下面命令的输出贴出来,我可以直接帮你判断是哪一种情况:
which java javac
java -version
rpm -qa | grep jdk