跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

Ubuntu 20.04 云服务器手动安装 Oracle JDK 17 指南

Ubuntu 20.04 环境下手动部署 Oracle JDK 17 涉及下载压缩包、配置环境变量及验证运行环境。过程包括解压 tar.gz 包至指定目录、设置 JAVA_HOME 指向正确路径,并通过 source 命令生效配置。此外涵盖常见问题排查及 apt 安装替代方案,确保 Java 开发环境稳定可用。

MongoKing发布于 2026/3/16更新于 2026/6/2624 浏览

环境准备

在开始之前,确保你拥有一台运行 Ubuntu 20.04 LTS 的云服务器。本次演示基于 Oracle JDK 17.0.16 版本,采用 tar.gz 压缩包进行手动解压安装,这种方式灵活性更高,适合需要自定义安装路径的场景。

下载与上传安装包

首先从 Oracle 官网获取 Linux x64 压缩版安装包(文件名类似 jdk-17.0.16_linux-x64_bin.tar.gz)。

如果你习惯使用命令行,可以直接通过 SCP 将本地文件传输到服务器:

scp /path/to/jdk-17.0.16_linux-x64_bin.tar.gz ubuntu@服务器 IP:/opt/java/

或者在服务器上直接使用 wget 下载(需确认网络连通性):

cd /opt/java
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz

如果选择图形化界面上传,记得先确保目录权限正确,否则可能会遇到写入失败的问题。

解压与目录配置

创建标准安装目录并赋予当前用户权限,这能避免后续操作出现权限拒绝错误。

sudo mkdir -p /opt/java
sudo chown -R ubuntu:ubuntu /opt/java
sudo chmod -R 755 /opt/java

进入目录后解压安装包。解压后的文件夹名称通常包含版本号,比如 jdk-17.0.16,请务必记下这个实际名称,后面配置环境变量时会用到。

cd /opt/java
tar -xzf jdk-17.0.16_linux-x64_bin.tar.gz
ls -la

验证一下结构,应该能看到 bin, conf, lib 等核心目录。

配置环境变量

为了让系统在任何位置都能识别 java 命令,我们需要修改系统级配置文件 /etc/profile。

sudo vi /etc/profile

在文件末尾追加以下内容,注意替换为你实际的解压目录名:

# JDK 17 环境变量配置
export JAVA_HOME=/opt/java/jdk-17.0.16
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH

保存退出后,执行以下命令使配置立即生效,无需重启服务器:

source /etc/profile

验证安装结果

配置完成后,通过几个关键命令检查环境是否就绪。

查看 Java 版本:

java -version

预期输出应显示 17.0.16 及 LTS 标识。同时检查编译器版本和路径:

javac -version
which java
echo $JAVA_HOME

如果想进一步测试,可以写一个简单的 Hello World 程序:

cat > Test.java <<'EOF'
public class Test {
    public static void main(String[] args) {
        System.out.println("JDK 17 安装成功!");
    }
}
EOF
javac Test.java
java Test

如果控制台打印出 "JDK 17 安装成功!",说明一切正常。

常见问题排查

1. 提示 command not found

通常是环境变量未生效或配置路径有误。检查 $JAVA_HOME 是否为空,若为空请重新编辑 /etc/profile 并确保执行了 source 命令。

2. 权限不足 (Permission denied)

尝试修正目录所有权:

sudo chown -R ubuntu:ubuntu /opt/java
sudo chmod -R 755 /opt/java

3. 多个 Java 版本冲突

如果系统里装过其他版本,可以用 update-alternatives 管理默认版本,或者直接指定完整路径运行。

替代方案:APT 安装

如果不想手动折腾,也可以直接用包管理器安装 OpenJDK 17,虽然版本可能不是最新,但胜在省心:

sudo apt update
sudo apt install -y openjdk-17-jdk
java -version

这种方式会自动处理大部分配置,适合快速搭建基础环境。

目录

  1. 环境准备
  2. 下载与上传安装包
  3. 解压与目录配置
  4. 配置环境变量
  5. JDK 17 环境变量配置
  6. 验证安装结果
  7. 常见问题排查
  8. 替代方案:APT 安装
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Python 中应淘汰的旧库及标准库替代方案详解
  • OpenClaw 本地 AI 智能体安装与配置指南
  • Webots 2025a + ROS 2 Jazzy e-puck 机器人仿真与导航教程
  • LangGraph工具调用实战:手把手教你实现ReAct搜索机器人
  • 基于星辰 RPA 的小红书自动发文机器人实现指南
  • 2025 年人工智能十大趋势及 AI 智能体能力级别
  • 本地项目上传 Gitee 完整指南:新手避坑版
  • AI 变现真相:为何掌握百种工具仍难盈利,核心在于商业认知
  • MCP 协议详解:与 Function Call 的区别及 Python SDK 使用指南
  • 基于 MYAI 大模型的智慧警务应用场景与能力解析
  • PX4 与 ROS 无人机 Offboard 控制:模式解析与实战实现
  • MySQL 内置函数实战指南:日期、字符串与数学运算
  • 解决 PKIX path building failed:SSL 证书导入 Java 信任库实战
  • 计算机科学与技术系统自学指南:六步构建知识体系
  • Neo4j 图数据库核心特性与 K8s 集群部署实战
  • AI 学习资源整理:工具、课程与实战指南
  • 2026 年 3 月行业动态与开源生态全景报告
  • MySQL 数据库基础核心概念与实战入门
  • RRT快速扩展随机树算法详解与Python实现
  • Flutter 三方库 webrtc_interface 的鸿蒙化适配指南

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online