oracle官网下载jdk需先注册并登录oracle账号(第三方登录无效),再访问归档页https://www.oracle.com/java/technologies/javase/jdk-archive-downloads.html,选择对应版本与平台,禁用广告拦截插件后勾选许可协议方可下载;\_bin结尾为完整jdk,\_jre为历史残留命名,现代开发应选用\_bin包。

Oracle 官方 JDK 不再免费提供给商业用途,个人学习和开发仍可免费下载,但必须登录 Oracle 账号并接受许可协议;直接访问官网下载页时,若未登录或未勾选同意,jdk-xx_windows-x64_bin.exe(或对应平台安装包)根本不会开始下载。
怎么在 Oracle 官网拿到 JDK 下载链接
Oracle 把 JDK 下载入口藏得比较深,且会根据浏览器 UA 和登录状态动态展示内容。关键动作只有两个:先登录账号,再手动拼接 URL 或从归档页找历史版本。
- 必须用 Oracle 账号登录(GitHub / Google 等第三方登录无效),没账号要先注册,邮箱需能收验证邮件
- 不要依赖首页的“Download Java”按钮——它现在默认跳转到
https://www.oracle.com/java/technologies/downloads/,但该页对未登录用户只显示 JRE 或模糊提示 - 真正稳定的路径是 Oracle Java SE 归档页:
https://www.oracle.com/java/technologies/javase/jdk-archive-downloads.html,这里列出所有历史版本,包括jdk-8u391、jdk-11.0.22、jdk-17.0.10等长期支持版 - 点击版本号后,页面会展开多个平台选项,注意核对
Windows x64/macOS aarch64/Linux x64等标识,选错会导致安装失败或运行报错cannot execute binary file: Exec format error
下载时提示 “You must accept the license agreement” 却找不到勾选项
这是最常卡住的环节:Oracle 把许可勾选框做成了 JavaScript 动态加载,部分广告屏蔽插件(如 uBlock Origin 默认规则)会误杀其脚本,导致复选框不渲染、按钮始终置灰。
- 临时禁用所有浏览器扩展,尤其广告/跟踪拦截类,刷新页面重试
- 不要用鼠标快速连点“Accept License Agreement”,要等页面完全加载完、圆圈图标消失后再操作
- 如果仍无效,右键“检查元素”,在控制台输入
document.querySelectorAll("input[type='checkbox']").forEach(c => c.click())手动触发勾选(仅限当前页面有效) - 勾选后,下载链接仍是 JavaScript 生成的,直接右键另存为会失败;务必用鼠标左键点击链接,让浏览器走真实跳转流程
下载下来的文件名带 _bin 或 _jre 是什么区别
Oracle 自 JDK 11 起不再单独发布 JRE,但安装包命名仍保留历史痕迹。_bin 表示完整 JDK(含 javac、jlink、jshell 等工具),_jre 实际是旧版残留命名,新版本已无纯 JRE 包——如果你看到 jdk-17.0.10_windows-x64_bin.exe,这就是你要的 JDK;而 jre-8u391-windows-x64.exe 只适用于极老系统或嵌入式场景,现代开发请忽略。
立即学习“Java免费学习笔记(深入)”;
- JDK 8 和 JDK 11+ 的安装包结构不同:前者双击即装,后者解压即用(
jdk-17.0.10是 zip 包,需手动配置JAVA_HOME) - macOS 上下载的是
.dmg(图形安装)或.tar.gz(命令行解压),后者更利于 CI/CD 或多版本共存管理 - Linux 用户注意区分
rpm和tar.gz:用yum install装 rpm 会全局覆盖/usr/java,而 tar.gz 可任意目录解压,配合update-alternatives切换版本更安全
真正麻烦的不是下载动作本身,而是 Oracle 每次改版都会微调页面逻辑、JS 加载顺序和 DOM 结构——今天好用的绕过方法,下个月可能就失效。建议把常用版本的直链(如 https://download.oracle.com/otn-pub/java/jdk/17.0.10+11/xxxxx/jdk-17.0.10_windows-x64_bin.exe)存本地,比反复找页面靠谱。










