在 CentOS 上“找不到 Java 编译器”,通常并不是系统坏了,而是没有安装 JDK(Java Development Kit),只可能有 JRE,或者根本没装 Java。下面按常见原因和解决办法说明。
Java 编译器是 javac,它只在 JDK 中,不在 JRE 中。
javac -version
如果提示:
command not found
说明没有 JDK。
java -version
java 但没 javac → 只装了 JRECentOS / RHEL 默认仓库里:
java-1.8.0-openjdk(这是 JRE)java-1.8.0-openjdk-devel(这才是 JDK,含 javac)# CentOS 7
yum install -y java-1.8.0-openjdk-devel
# CentOS 8
dnf install -y java-1.8.0-openjdk-devel
如果你需要 Java 11:
dnf install -y java-11-openjdk-devel
javac -version
查看 java 安装位置:
which java
ls -l /usr/bin/java
JDK 一般在:
/usr/lib/jvm/java-1.8.0-openjdk/bin/javac
临时使用:
export PATH=$PATH:/usr/lib/jvm/java-1.8.0-openjdk/bin
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
写入环境变量(推荐):
vi /etc/profile.d/java.sh
内容:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
生效:
source /etc/profile
| 现象 | 原因 | 解决 |
|---|---|---|
javac 不存在 |
没装 JDK | 装 -devel |
有 java 没 javac |
只装 JRE | 装 JDK |
| 装了还是找不到 | PATH 问题 | 配置 PATH |
如果你愿意,可以贴一下:
java -version
javac -version
cat /etc/centos-release
我可以帮你精确判断是哪一种情况。