背景
因为 Oracle 的闭源特质,Ubuntu 内置的 apt 仓库中默认安装的 JDK 是 OpenJDK,如果想要安装Oracle 版本的 JDK,就需要去官网下载。另外我们可能会需要再电脑上使用不同版本的 JDK,因此同时介绍了使用update-alternatives
来管理多个版本的方法。
操作方法
步骤 1:下载 Oracle JDK
- 打开 Oracle JDK 官方下载页面。
- 根据需要选择版本(如 JDK 21 或 JDK 17),点击对应的下载链接。
- 下载适用于 Linux 的
.tar.gz
压缩文件。
步骤 2:解压并安装 JDK
将下载的 .tar.gz
文件解压到系统路径下,例如 /usr/lib/jvm
(这是标准的 JDK 安装目录)。
-
创建目标目录(如果尚未存在):
sudo mkdir -p /usr/lib/jvm
-
解压文件到该目录:
sudo tar -xvzf ~/Downloads/jdk-
_linux-x64_bin.tar.gz -C /usr/lib/jvm 替换
jdk-<version>
为实际的文件名,例如jdk-17.0.8
. -
确认解压后的路径,例如
/usr/lib/jvm/jdk-17.0.8
.
步骤 3:配置 update-alternatives
update-alternatives
是 Ubuntu 系统中用来管理多版本可执行文件的工具。我们需要将 Oracle JDK 的 java
和 javac
可执行文件添加到该工具中。
-
添加
java
javac
命令到update-alternatives
:sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-
/bin/java 1000 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk- /bin/javac 1000 -
切换当前使用的 JDK 版本:
sudo update-alternatives --config java
执行命令后,会显示当前可用的 JDK 列表,例如:
There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1100 auto mode * 2 /usr/lib/jvm/jdk-17.0.8/bin/java 1000 manual mode
输入数字(如
2
),切换到所需的版本。 -
同步切换
javac
命令:sudo update-alternatives --config javac
步骤 4:验证安装
切换完成后,运行以下命令检查 JDK 版本:
java -version
javac -version
输出应该显示所选的 Oracle JDK 版本,例如:
java version "17.0.8" 2024-01-14 LTS
Java(TM) SE Runtime Environment (build 17.0.8+10-LTS-123)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.8+10-LTS-123, mixed mode, sharing)
步骤 5:设置环境变量(可选)
为了便于开发,建议设置 JAVA_HOME
环境变量:
-
编辑全局环境文件:
sudo nano /etc/environment
-
添加以下内容(将路径替换为实际 JDK 安装路径):
JAVA_HOME=/usr/lib/jvm/jdk-17.0.8 PATH="$JAVA_HOME/bin:$PATH"
-
保存并退出,然后重新加载环境变量:
source /etc/environment
-
验证
JAVA_HOME
设置:echo $JAVA_HOME
总结
通过上述步骤,您可以在 Ubuntu 中安装 Oracle JDK 并使用 update-alternatives
工具灵活切换不同版本的 JDK。这种方法适用于多版本 JDK 共存的情况,同时保证了系统的灵活性和稳定性。