Java 虚拟机本身没有独立的官方下载入口,你要找的其实是 JDKOracle 官网(oracle.com/java)和 OpenJDK 官网(openjdk.org)是两大源头,而日常开发更推荐从 Eclipse Temurin、Amazon Corretto 这类免费发行版下载,版本认准 LTS 长期支持版即可。
Java虚拟机下载官网是哪个?先把三个概念捋直
很多人搜”JVM 下载”,以为像装 QQ 一样能单独下载一个虚拟机装上,这个思路从根上就偏了,JVM 是 JDK 的一部分,随 JDK 一起安装,没有单独的分发包。
顺带纠正一个高频拼写错误:是 Java,不是 jave,搜索引擎会自动纠错,但你在工单里、简历上写错,专业度就打了折扣。
JVM、JRE、JDK 到底该装哪个
- JVM:真正执行 .class 字节码的那层虚拟机,负责类加载、垃圾回收、即时编译
- JRE:JVM 加上核心类库,只能运行 Java 程序,不能编译
- JDK:JRE 加上编译器 javac、调试与诊断工具,开发必须装这个
一句话结论:下载 JDK 就对了,JVM 和 JRE 都包含在里面,Oracle 从 Java 11 起不再单独提供 JRE 下载,这个变化不少人还不知道。
官方下载地址分三类
- Oracle JDK:oracle.com/java/technologies/downloads,商业属性最强的官方版本
- OpenJDK:openjdk.org,开源参考实现,只提供源码和构建脚本
- 第三方发行版:Temurin、Corretto、Zulu、Microsoft Build of OpenJDK 等,基于 OpenJDK 源码编译,提供现成安装包
业内专家指出,OpenJDK 官网不发布二进制安装包这一点,是大量新手困惑的根源你在 openjdk.org 上根本找不到 .exe 或 .dmg,只能看到源码仓库。
JDK和JRE下载哪个好?按使用场景对号入座
这个问题没有统一答案,关键看你拿它干什么。
只负责运行别人写好的程序
- 服务器上跑一个 Spring Boot 的 jar 包
- 企业内部工具的客户端
- 教学环境跑示例代码
这种情况理论上 JRE 够用,但现实是 Java 11 之后官方不再单独发 JRE,多数团队干脆直接装 JDK,多占几百 MB 硬盘换取省心。
写代码、编译、打包
必须是 JDK,没有第二个选项,没有 javac,你连 HelloWorld 都编译不出来。
生产服务器部署
推荐装 JDK 而不是精简版 JRE,原因很实际:线上出问题时,jps、jstack、jmap、jcmd 这些诊断工具都在 JDK 里,为了省 200MB 装个 JRE,等进程卡死时抓不到线程栈,排查成本远高于那点硬盘空间。
安全可靠的JDK版本怎么选?主流免费发行版横向对比
“安全可靠”拆开看是两层意思:安全指持续收到安全补丁,可靠指长期维护不跑路。
先定版本:认准 LTS
Java 的发布节奏是每半年一个功能版本,每两年左右出一个 LTS,LTS 的支持周期通常按年计,而非 LTS 只有半年左右。
| 版本 | 类型 | 建议 |
|---|---|---|
| Java 8 | LTS | 老系统仍在用,新项目不建议 |
| Java 11 | LTS | 接近维护末期,逐步迁移 |
| Java 17 | LTS | 存量项目主力,仍受支持 |
| Java 21 | LTS | 新项目主流选择 |
| Java 25 | LTS | 最新 LTS,可尝试 |
| Java 22/23/24 | 非 LTS | 生命周期短,别上生产 |
拿非 LTS 版本跑生产环境,等于给自己埋雷。 半年后补丁停了,安全漏洞只能自己扛。
再看发行版:免费且维护周期长的优先
| 发行版 | 维护方 | 特点 |
|---|---|---|
| Eclipse Temurin | Adoptium(Eclipse 基金会) | 社区中立,企业采用面广 |
| Amazon Corretto | 亚马逊 | 免费长期支持,AWS 环境友好 |
| Azul Zulu | Azul Systems | 有免费版也有商业版,调优工具丰富 |
| Microsoft Build of OpenJDK | 微软 | 免费,Azure 集成好 |
| Oracle JDK | 甲骨文 | NFTC 许可,生产使用需看清条款 |
Oracle JDK 收费吗?这是最容易被吓到的问题
结论是:开发和测试免费,生产环境要看清许可条款。
Oracle 从 Java SE 8u211 起改用 OTN 许可,商业生产使用需要订阅;JDK 17 开始又推出 NFTC(No-Fee Terms and Conditions),允许免费用于生产和商业用途,但细则每年可能调整。
行业共识认为,如果不是必须用 Oracle 独有特性,选 Temurin 或 Corretto 能省掉不少法务沟通成本,这两个发行版都通过 TCK 认证,与 Oracle JDK 的字节码行为一致。
国内下载JDK慢怎么解决?镜像与校验方案
Oracle 官网和 GitHub Release 在国内下载经常只有几十 KB/s,装个 JDK 等半小时是常态。
走国内镜像站
- 华为云镜像:mirrors.huaweicloud.com/openjdk/
- 酷番云镜像:mirrors.cloud.tencent.com/AdoptOpenJDK/
- 清华 TUNA 镜像:mirrors.tuna.tsinghua.edu.cn/Adoptium/
命令行下载与解压示例
# 以 Temurin 17 Linux x64 为例,具体小版本号以官网最新为准 wget https://mirrors.tuna.tsinghua.edu.cn/Adoptium/17/jdk/x64/linux/OpenJDK17U-jdk_x64_linux_hotspot_17.0.11_9.tar.gz tar -zxvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.11_9.tar.gz -C /usr/local/
下载完必须校验完整性
sha256sum OpenJDK17U-jdk_x64_linux_hotspot_17.0.11_9.tar.gz
把输出结果与 Temurin 官网公布的 checksum 文件逐字符比对,一致才说明包没被篡改。这一步别省,尤其是从非官方渠道拿到的包。 校验失败的直接删掉重下,不要心存侥幸。
Windows 与 macOS 安装 JDK 的实操路径
Windows 下的配置步骤
- 下载 .msi 安装包,双击按提示安装
- 安装向导中勾选 Set JAVA_HOME variable
- 若未自动配置,手动设置环境变量:
JAVA_HOME = C:Program FilesEclipse Adoptiumjdk-17.0.11.9-hotspot
Path 追加 %JAVA_HOME%bin
- 打开新的命令行窗口验证:
java -version javac -version echo %JAVA_HOME%
三条命令都有正常输出才算装好,常见的”java 不是内部或外部命令”报错,基本都是 Path 没配或没重开窗口。
macOS 下的两种方式
# 查看已安装的 JDK /usr/libexec/java_home -V # 设置当前会话默认版本 export JAVA_HOME=$(/usr/libexec/java_home -v 17)
用 Homebrew 更省事:
brew install --cask temurin@17
多版本共存怎么切换
装了 8、11、17 三个版本,Windows 上调整 JAVA_HOME 指向,macOS 上用 java_home -v 指定,Linux 上推荐用 update-alternatives:
sudo update-alternatives --config java
执行后会列出所有已注册的 Java 路径,输入对应编号即可切换,这套方式的好处是系统级生效,不用每个 shell 单独 export。
Java 虚拟机下载与版本选择常见问题
官网下载的 JDK 和第三方发行版有区别吗?
内核完全一样,两者都基于 OpenJDK 源码构建,兼容性通过 TCK 认证保证,差别在打包方式、附加工具、许可条款和更新节奏,你写的同一份代码在 Temurin 和 Oracle JDK 上跑,运行结果不会有两样。
装了新版 JDK,旧项目还能跑吗?
向下兼容做得不错,Java 8 编译的 jar 在 Java 17 上通常能直接运行;反过来不行,Java 17 编译的 class 文件在 Java 8 上会抛 UnsupportedClassVersionError。
常见的一个坑是模块化,Java 9 引入 JPMS 后,一些依赖反射访问 JDK 内部 API 的老框架可能报 InaccessibleObjectException,启动时加 --add-opens java.base/java.lang=ALL-UNNAMED 这类参数可以缓解,但更稳妥的做法是把依赖升到官方支持新版本的 release。
企业内网完全断网,怎么部署 JDK?
在能联网的机器上下载压缩包,用 sha256sum 校验后拷贝进内网,Linux 下解压到 /opt/jdk-17 这类目录,再写一个环境变量文件:
# /etc/profile.d/java.sh export JAVA_HOME=/opt/jdk-17 export PATH=$JAVA_HOME/bin:$PATH
执行 source /etc/profile.d/java.sh 立即生效,整套流程不依赖任何在线服务,一次配好可以批量复制到同架构的服务器上,适合有几十上百台机器的场景。
回到最开始的问题:Java 虚拟机的官方源头是 Oracle 和 OpenJDK,但你真正要下载的是 JDK;版本认准 LTS,发行版优先 Temurin 或 Corretto,下载后务必做一次 SHA256 校验。 这四步做到位,环境和安全基本就稳了。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/741988.html





