温馨提示×

Ubuntu Java如何设置默认

小樊
37
2026-08-11 16:32:40
栏目: 编程语言

在 Ubuntu 上设置 默认 Java(JDK/JRE)版本,通常使用 update-alternatives 工具。下面按常见场景一步步说明。


一、先确认已安装的 Java

update-alternatives --list java

如果输出类似:

/usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/lib/jvm/java-17-openjdk-amd64/bin/java

说明系统里已安装多个 Java 版本。


二、设置默认 Java(核心步骤)

1️⃣ 设置 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:

输入对应数字并回车即可。


2️⃣ 设置 javac(如果你用 JDK)

sudo update-alternatives --config javac

⚠️ 只装 JRE 的话没有 javac


3️⃣ 可选:一并设置其他 Java 工具

sudo update-alternatives --config javap
sudo update-alternatives --config javadoc
sudo update-alternatives --config jar

三、验证设置是否成功

java -version
javac -version

输出应显示你选择的版本。


四、通过环境变量设置(推荐做法)

1️⃣ 查找 Java 安装路径

sudo update-alternatives --config java

假设路径是:

/usr/lib/jvm/java-17-openjdk-amd64

2️⃣ 设置 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

五、如果还没安装 Java

安装 OpenJDK(推荐)

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

如果你愿意,可以告诉我:

  • Ubuntu 版本(20.04 / 22.04 / 24.04)
  • 用的是 OpenJDK 还是 Oracle JDK
  • 桌面版还是服务器版

我可以给你更精确的命令 ✅

0