在 Ubuntu 上设置 默认 Java(JDK/JRE)版本,通常使用 update-alternatives 工具。下面按常见场景一步步说明。
update-alternatives --list java
如果输出类似:
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/lib/jvm/java-17-openjdk-amd64/bin/java
说明系统里已安装多个 Java 版本。
java 默认版本sudo update-alternatives --config java
会看到类似提示:
There are 2 choices for the alternative java (providing /usr/bin/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
sudo update-alternatives --config javap
sudo update-alternatives --config javadoc
sudo update-alternatives --config jar
java -version
javac -version
输出应显示你选择的版本。
sudo update-alternatives --config java
假设路径是:
/usr/lib/jvm/java-17-openjdk-amd64
JAVA_HOME编辑环境变量文件(选一个):
sudo nano /etc/profile
# 或
nano ~/.bashrc
添加:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
生效:
source ~/.bashrc
验证:
echo $JAVA_HOME
sudo apt update
sudo apt install openjdk-17-jdk
或指定版本:
sudo apt install openjdk-11-jdk
java -version 没变?PATH 中有其他 Java(如手动安装的 Oracle JDK)which java
/etc/profile:所有用户~/.bashrc:当前用户sudo update-alternatives --config java
sudo update-alternatives --config javac
export JAVA_HOME=/usr/lib/jvm/java-xx-openjdk-amd64
如果你愿意,可以告诉我:
我可以给你更精确的命令 ✅