在 Debian 上“找不到 Java 编译器”,通常不是系统坏了,而是没有安装 JDK,或者装的是 JRE,或者环境变量没配好。下面按最常见原因逐一说明。
Debian 默认很多软件依赖的是 JRE(Java 运行环境),而 javac(Java 编译器)只在 JDK 里。
如果你只执行过:
apt install default-jre
那你是没有 javac 的。
✅ 正确做法(安装 JDK):
sudo apt update
sudo apt install default-jdk
安装完成后检查:
javac -version
执行:
which javac
查看已安装的 Java 包:
dpkg -l | grep -i jdk
Debian 使用 update-alternatives 管理 Java。
查看 Java 编译器:
ls /usr/lib/jvm/
如果看到例如:
java-17-openjdk-amd64
手动指定:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
再试:
javac -version
如果你装了多个 Java 版本:
sudo update-alternatives --config javac
sudo update-alternatives --config java
选择带 jdk 的那个版本。
Docker 或最小化 Debian 可能什么 Java 都没装。
有些教程让你用 apt build-dep,但那不等于装 JDK。
java -version # 能运行
javac -version # 能编译(关键)
两个都要有
如果你愿意,可以把下面命令的输出贴出来,我可以直接帮你判断是哪一种情况:
which java
which javac
dpkg -l | grep -i jdk