在 Debian(及多数基于 Debian 的发行版)中,推荐使用 update-alternatives 来管理并设置默认 Java(JDK / JRE)。
update-alternatives --list java
如果没有输出或报错,说明尚未安装 Java,可先安装(例如 OpenJDK):
sudo apt update
sudo apt install openjdk-17-jdk
或安装 JRE:
sudo apt install openjdk-17-jre
javasudo update-alternatives --config java
输出示例:
There are 2 choices for the alternative java:
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
2 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 manual mode
Press <enter> to keep the current choice[*], or type selection number:
输入对应编号并回车即可。
javac(如果你安装了 JDK)sudo update-alternatives --config javac
⚠️ 注意:如果只安装了 JRE,是没有 javac 的。
java -version
javac -version
JAVA_HOME(推荐)Java 应用(如 Maven、Tomcat、Elasticsearch)通常需要 JAVA_HOME。
readlink -f $(which java)
通常路径类似于:
/usr/lib/jvm/java-17-openjdk-amd64/bin/java
那么 JAVA_HOME 应为:
/usr/lib/jvm/java-17-openjdk-amd64
编辑:
sudo nano /etc/environment
添加一行(示例):
JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"
保存后使配置生效:
source /etc/environment
nano ~/.bashrc
添加:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
生效:
source ~/.bashrc
java -version 后还是旧的版本?JAVA_HOMEupdate-alternatives 已切换到正确的 Javaopenjdk-17-jdkopenjdk-8-jdk(Debian 12 已移除,需第三方仓库)# 查看
update-alternatives --list java
# 设置
sudo update-alternatives --config java
sudo update-alternatives --config javac
# 验证
java -version
如果你愿意,可以告诉我:
我可以给你更精确的配置方案。