Ubuntu 安装 JDK (含手动安装)

方法一:使用 apt 安装 OpenJDK(最简单,推荐)

Ubuntu 官方仓库提供了 OpenJDK 的多个版本(如 JDK 11, 17, 21 等)。

1. 更新软件包列表

打开终端,运行:

bash 复制代码
sudo apt update

2. 查看可用的 JDK 版本

bash 复制代码
apt search openjdk-.*-jdk | grep "^openjdk"

3. 安装指定的 JDK

以安装 JDK 17 为例:

bash 复制代码
sudo apt install openjdk-17-jdk

4. 验证安装

bash 复制代码
java -version
javac -version

如果输出了对应的版本号,说明安装成功。

方法二:手动下载安装(适用于 Oracle JDK 或特定版本)

1. 下载 JDK 压缩包 前往 Oracle JDK 官网 或 Eclipse Temurin (Adoptium) 下载 Linux x64 的 .tar.gz 压缩包。

(假设下载的文件名为 jdk-17.0.20.1_linux-x64_bin.tar.gz)

2. 创建安装目录并解压

bash 复制代码
# 创建目录
sudo mkdir -p /usr/local/java

# 将下载的文件移动到该目录(请根据实际下载路径修改)
sudo mv jdk-17.0.20.1_linux-x64_bin.tar.gz /usr/local/java/

# 进入目录并解压
cd /usr/local/java
sudo tar -zxvf jdk-17.0.20.1_linux-x64_bin.tar.gz

# 删除压缩包(可选)
sudo rm jdk-17.0.20.1_linux-x64_bin.tar.gz

3. 配置环境变量

打开全局环境变量配置文件:

bash 复制代码
sudo nano /etc/profile

在文件最末尾 添加以下内容(注意:请将 jdk-17 替换为你解压后的实际文件夹名称):

bash 复制代码
# Java Environment
export JAVA_HOME=/usr/local/java/jdk-17.0.20.1
export PATH=$JAVA_HOME/bin:$PATH

(注:JDK 9 及以上版本已不再需要配置 JRE_HOME 和 CLASSPATH)

保存并退出(在 nano 中按 Ctrl+O 回车 保存,Ctrl+X 退出)。

4. 使环境变量生效

bash 复制代码
source /etc/profile

5. 验证安装

bash 复制代码
java -version
echo $JAVA_HOME

方法三:使用 SDKMAN(适合开发者管理多个 Java 版本)

如果你是 Java 开发者,经常需要在不同项目间切换不同的 JDK 版本(如 JDK 8, 11, 17, 21),强烈推荐使用 SDKMAN。

1. 安装依赖

bash 复制代码
sudo apt install curl zip

2. 安装 SDKMAN

bash 复制代码
curl -s "https://get.sdkman.io" | bash

3. 初始化 SDKMAN

bash 复制代码
source "$HOME/.sdkman/bin/sdkman-init.sh"

4. 查看并安装 Java 版本

bash 复制代码
# 查看所有可用的 Java 版本
sdk list java

# 安装指定的版本(例如安装 Temurin 的 JDK 17)
sdk install java 17.0.8-tem

5. 切换版本

bash 复制代码
# 切换当前终端的 Java 版本
sdk use java 17.0.8-tem

# 设置默认的 Java 版本
sdk default java 17.0.8-tem

补充:如何切换系统默认的 Java 版本?

如果你通过 apt 安装了多个版本的 OpenJDK(比如同时安装了 11 和 17),可以使用以下命令切换系统默认版本:

bash 复制代码
# 切换 java 命令
sudo update-alternatives --config java

# 切换 javac 命令
sudo update-alternatives --config javac

运行后,终端会列出所有已安装的版本,输入对应的序号并回车即可切换。

相关推荐
m0_734172421 小时前
Python字典计数怎样处理首次出现的键
java
卓怡学长1 小时前
w204基于springbo旅行社签证代理服务系统
java·spring boot·spring·intellij-idea
泡海椒1 小时前
趋势分析报表:jquick-pdf折线图PDF生成实战
java·大数据·运维·服务器·前端·pdf
Json____2 小时前
家居装修 AI 智能咨询助手:让装修咨询从“大海捞针“变成“一问即答“
java·后端·vue3·it学习·wwwoop.com
vipxieliang2 小时前
ValidX 在微服务架构中的验证策略
java·spring boot
用户094248568032 小时前
第18章:ConcurrentHashMap与并发容器实战
java·jvm
小羊没烦恼!2 小时前
在Scrum中实施敏捷建模
java·开发语言·windows·算法·c#
❀͜͡傀儡师2 小时前
20 年沉淀,CAS 8.0 重新定义企业级 SSO:适配 JDK 25 与 Spring Boot 4.1
java·开发语言·spring boot
牧瀬クリスだ2 小时前
Spring统一功能处理
java·spring boot·spring·状态模式