Ubuntu系统升级Java版本详细步骤教程
Ubuntu 升级 Ja va 的可行方案
给 Ubuntu 系统升级 Ja va,听起来简单,但路径选择不对,后续管理起来可能就有点头疼了。别担心,下面这份从检查到验证的完整指南,能帮你理清思路,找到最适合你的那条路。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
一 前置检查
动手之前,先摸清家底。这步做好了,后续升级才能心中有数。
- 查看当前版本与路径:
- 敲入
ja va -version和ja vac -version,看看系统当前默认的运行时和编译器版本。 - 用
which ja va找到 Ja va 命令的位置,再用readlink -f "$(which ja va)"追根溯源,找到实际的 JDK 安装路径。这能帮你理解系统是如何找到 Ja va 的。
- 敲入
- 更新索引并确认可用包:
- 执行
sudo apt update刷新软件包列表。 - 运行
apt search openjdk | grep jdk,看看官方仓库里有哪些 OpenJDK 版本可供选择。
- 执行
- 一个小建议: 在安装新版本前,除非你非常确定,否则先别急着移除旧版本。等新版本安装并验证无误后,再考虑清理,这样可以最大程度避免业务意外中断。
二 方法一 使用 APT 安装或升级 OpenJDK(推荐)
对于大多数桌面和服务器环境,这是最省心、最推荐的方式。APT 包管理器会帮你自动处理所有依赖关系。
- 安装指定版本: 以安装 OpenJDK 17 为例,命令很简单:
sudo apt updatesudo apt install openjdk-17-jdk
openjdk-8-jdk、openjdk-11-jdk或openjdk-21-jdk即可。 - 验证安装:
- 再次运行
ja va -version和ja vac -version,确认输出已经变成了新安装的版本。
- 再次运行
三 方法二 手动安装 Oracle JDK 或特定发行版
如果你需要 Oracle 官方的 JDK,或者某个特定的发行版(如 Temurin、Zulu),手动安装能给你最大的控制权。以 JDK 17 为例:
- 下载并解压:
- 使用
wget下载压缩包:wget https://download.oracle.com/ja va/17/latest/jdk-17_linux-x64_bin.tar.gz - 创建一个集中目录:
sudo mkdir -p /usr/local/ja va - 解压到该目录:
sudo tar -xzf jdk-17_linux-x64_bin.tar.gz -C /usr/local/ja va
- 使用
- 注册到 alternatives 并切换默认版本: 这是让系统识别手动安装 JDK 的关键步骤。
- 将 Ja va 和 Ja vac 命令注册到 alternatives 系统:
sudo update-alternatives --install /usr/bin/ja va ja va /usr/local/ja va/jdk-17/bin/ja va 100sudo update-alternatives --install /usr/bin/ja vac ja vac /usr/local/ja va/jdk-17/bin/ja vac 100 - 运行
sudo update-alternatives --config ja va和sudo update-alternatives --config ja vac,从交互列表中选择刚注册的版本。
- 将 Ja va 和 Ja vac 命令注册到 alternatives 系统:
- 设置环境变量: 确保应用能正确找到 JA VA_HOME。
- 全局设置(影响所有用户): 编辑
/etc/environment文件,添加:JA VA_HOME="/usr/local/ja va/jdk-17"PATH="$JA VA_HOME/bin:$PATH"执行source /etc/environment或重新登录使生效。 - 当前用户设置: 编辑你的
~/.bashrc或~/.zshrc文件,添加:export JA VA_HOME=/usr/local/ja va/jdk-17export PATH=$JA VA_HOME/bin:$PATH执行source ~/.bashrc或source ~/.zshrc使生效。
- 全局设置(影响所有用户): 编辑
- 验证:
- 检查版本:
ja va -version,ja vac -version - 确认路径:
echo $JA VA_HOME
- 检查版本:
四 方法三 多版本共存与切换工具
开发中经常需要在不同项目间切换 Ja va 版本,以下几个工具能让这件事变得轻松。
- 使用系统 alternatives(系统级、简单可靠):
- 查看已注册版本:
update-alternatives --display ja va - 交互式切换:
sudo update-alternatives --config ja va - 如果需要,用同样方式切换编译器:
sudo update-alternatives --config ja vac
- 查看已注册版本:
- 使用 jEnv(开发场景、多版本管理更灵活): 这是一个专门管理多版本 Ja va 的命令行工具。
- 安装:
git clone https://github.com/jenv/jenv.git ~/.jenv - 初始化(以 bash 为例):
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bashrcecho 'eval "$(jenv init -)"' >> ~/.bashrcsource ~/.bashrc - 添加 JDK:
jenv add /usr/lib/jvm/ja va-11-openjdk-amd64(路径请替换为你的实际路径) - 切换:
jenv global 11(全局生效)或jenv local 11(仅在当前目录生效)
- 安装:
- 使用 SDKMAN(WSL/Ubuntu 开发强烈推荐,支持项目级 .sdkmanrc): 功能更强大的多版本管理工具,支持多种 SDK。
- 安装:
curl -s "https://get.sdkman.io" | bash && source "$HOME/.sdkman/bin/sdkman-init.sh" - 安装与切换:
sdk install ja va 17.0.10-tem;sdk use ja va 17.0.10-tem;sdk default ja va 17.0.10-tem - 项目级自动切换: 在项目根目录执行
sdk env init生成.sdkmanrc文件,之后每次进入该项目目录,SDKMAN 会自动切换到指定的 JDK 版本,非常方便。
- 安装:
五 验证与常见问题处理
升级完成,别急着收工,做好验证才能高枕无忧。
- 验证要点:
ja va -version与ja vac -version的输出必须一致,且都是你刚安装的目标版本。which ja va和readlink -f "$(which ja va)"的指向应该符合预期,通常是/usr/bin/ja va -> /etc/alternatives/ja va -> 实际 JDK 的 bin/ja va这个链条。echo $JA VA_HOME的路径必须与你选择的 JDK 安装目录完全一致。
- 常见问题与修复:
- 版本冲突或未切换成功: 重新运行
sudo update-alternatives --config ja va进行选择。如果编译也有问题,记得同时配置ja vac。 - 环境变量未生效: 确认你修改的是当前正在使用的 shell 配置文件(比如你用 zsh 却改了 bashrc),并执行了
source命令或重新登录了终端。 - 特定应用仍用旧版本: 一些应用(如 Tomcat)有独立的配置文件。检查其配置(例如 Tomcat 的
/etc/default/tomcat中的JA VA_HOME),修改后重启应用。 - 清理旧版本: 在确认所有业务都不再依赖旧版本后,可以安全卸载,例如:
sudo apt remove openjdk-8-jdk。
- 版本冲突或未切换成功: 重新运行
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Notepad++批量修改文件后缀名脚本使用教程
Notepad++无法直接批量修改文件后缀,通常需借助插件调用系统命令实现。对于简单情况,可使用NppExec插件配合cmd命令处理;若涉及多层目录或复杂条件,则建议编写Python脚本进行递归操作。需注意文件占用可能导致失败,且修改后缀可能影响系统关联和编辑器识别。
Linux下Rust代码编译问题排查与解决指南
在Linux中,如果Rust编译出错,你可以按照以下步骤进行排查和解决: 阅读错误信息: Rust编译器给出的错误信息通常非常详实,不仅会标明错误类型,还会精确到文件和行号。第一步,务必静下心来仔细读一读这些提示,它们往往能直接帮你定位到问题的根源。 检查代码语法: Rust的语法规则相对严谨,有时
Ubuntu系统JSP代码优化方法与实战技巧
Ubuntu上JSP代码与运行时一体化优化指南 想让老派的JSP应用在Ubuntu上跑得又快又稳?这事儿不单是写写代码就行,得从代码、配置到运行时整个链路都做通盘考虑。下面这份优化指南,就是给这类项目开的一剂综合药方。 一 代码与页面层优化 这一层的核心思路是“各司其职”,让前端页面和后端逻辑都回归
Docker与常见技术栈集成方法及实践指南
Linux Docker 的常见集成方式 玩转Docker容器,如果只是单打独斗,那可有点小瞧它了。它真正的潜力,往往在于与生态中其他“伙伴”的紧密协作。通过灵活的集成,它能迸发出远超单个工具的能量。下面这几种常见的组合拳,或许能帮你打开新思路。 1 Kubernetes:不只是编排,更是自动化管
Linux vsFTP性能评测与主流FTP服务器软件对比分析
Linux vsftpd 性能对比与选型建议 结论与定位 当我们谈论面向高并发、长时间稳定运行的生产级FTP服务时,一个名字总是绕不开:vsftpd。在相同的硬件与网络舞台上,这款服务器以其极致的轻量与稳定,展现了令人印象深刻的实力。社区的多项测试与资料显示,它在单机(非集群)部署下就能轻松撑起40
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

