
简介Java 14 的 OpenJDK JRE 14.0.1.7-1 版本 Windows Red Hat x86_64 运行时环境资源包面向需要在 Windows 平台安装或离线部署 Java 14 运行环境的开发与运维人员。包体按 Red Hat 构建规范整理包含 JRE 运行所需的核心动态链接库、可执行文件、策略文件、安全证书以及模块描述等压缩包共 358 个文件大小约 59.57MB可满足无网络环境下的快速安装与多实例配置需求。包内还包含 63 份 additional_license_info 和 63 份 assembly_exception 许可文件对于关注开源许可证合规的团队尤为实用。资源内附带 license、additional_license_info、assembly_exception 等许可与合规说明便于企业用户核对使用条款另有 md 文档与 properties、cfg 等配置文件辅助了解构建信息与运行时参数。目前已有 620 人学习/下载适合需要获取相应版本 JRE 用于测试、生产环境搭建或学习 Java 模块化运行时结构的读者。解压后目录层级清楚可直接集成到现有应用或容器镜像中作为本地构建与运行的基础环境。 看到java-14-openjdk-jre-14.0.1.7-1.windows.redhat.x86_64.zip这个文件名很多刚接触 Java 生态的同学可能一脸懵这到底是给 Linux 用的还是给 Windows 用的RedHat 的包怎么跑到 Windows 上了实际上这是 Red Hat 在 Windows x86_64 平台发布的 OpenJDK 运行时环境里面封装了 JRE 14.0.1.7专门给那些只需要运行 Java 程序、不打算写代码的环境准备。我自己在折腾服务器和本地环境时经常遇到这种命名复杂的安装包踩过不少坑这篇文章就把拆包、安装、配置、验证的完整过程讲清楚顺便把热搜里那些高频问题JRE 和 JVM 啥关系、环境变量怎么配、内存不足怎么办一并解决掉。1. 项目概述与环境理解先把这个包的名头捋顺再做任何安装动作之前都得知道手里拿的是什么。1.1 这个 JRE 安装包到底是什么文件名拆开看是这样的java-14Java 主版本号 14。openjdk来自 OpenJDK 社区构建不是 Oracle 官方商业版。jreJava Runtime Environment也就是 Java 运行时环境只负责运行.class和.jar不包含编译器javac。14.0.1.7特性版本 14.0.1安全补丁级别 7。windows.redhat.x86_64平台是 Windows架构是 x86_64即 64 位由 Red Hat 出品。这个包的本质是Red Hat 团队用 OpenJDK 源码在 Windows x86_64 环境下构建出来的 JRE 运行时压缩包。解压之后就能直接用java命令不需要安装器也不需要管理员权限特别适合内网部署和绿色化集成。1.2 为什么需要单独装 JRE 而不是直接装 JDK很多人上来就问我直接装个 JDK 不就行了JDK 里自带 JRE 啊。这句话放在几年前没错但从 Java 9 开始官方不再提供独立的 JRE 安装包JDK 内部结构也改了不再是一个 JDK 目录下嵌套一个 JRE 目录。但 OpenJDK 社区和 Red Hat 这类发行商会单独维护 JRE 构建产物专门给生产环境用。生产服务器的原则是最小化安装。你想想如果一台只跑 Spring Boot 应用的服务器装了完整 JDK等于多出了javac、javap、jdb、jmap这些开发调试工具占磁盘不说还扩大了攻击面。JRE 只保留类库、虚拟机、启动器这些运行必需的部分体积更小、更安全。普通用户运行桌面 Java 程序也只需要 JRE装 JDK 反而多余。所以这个包面向的场景很明确Windows 服务器或桌面环境只需要运行 Java 应用不搞开发编译那就用 JRE。2. 核心概念拆解JRE、JDK、JVM 的关系在动手部署之前把这三个概念彻底搞明白后面排查问题会轻松一半。2.1 三者的层级关系用大白话说JVMJava Virtual MachineJava 虚拟机负责把字节码翻译成当前操作系统能识别的机器指令。它是 Java 跨平台的根本。JREJava Runtime EnvironmentJVM Java 核心类库rt.jar、java.lang、java.util等 启动命令java.exe。它提供运行 Java 程序所需的一切。JDKJava Development KitJRE 开发工具javac.exe、jar.exe、jdb.exe等 各类调试诊断工具。它提供开发 Java 程序所需的一切。关系就是套娃JDK 包含 JREJRE 包含 JVM。热搜里那个jre和jvm之间的关系看这个就通了。有个常被忽略的细节JVM 本身不是一个独立安装的软件它藏在 JRE 或 JDK 目录里。Windows 上 JRE 目录下会有bin\server\jvm.dll这才是虚拟机的实体文件。java.exe启动时会去加载这个 DLL如果没有它程序根本跑不起来。2.2 OpenJDK 与 Oracle JDK 的差异Java 11 之后Oracle JDK 和 OpenJDK 在功能上几乎没有差别区别主要在发行方、许可证和支持策略对比项Oracle JDKOpenJDK源码基于 OpenJDK含少量闭源组件完全开源许可证Oracle 商业许可付费GPLCE可免费商用更新频率长期支持版本提供长期更新由社区和发行商维护典型发行方OracleRed Hat、Adoptium、Microsoft、Azul 等最适合场景企业合规采购一般生产环境、云原生、容器这个包是 Red Hat 构建的 OpenJDK JRE意味着你可以免费下载、免费部署、自由分发。很多云厂商的 Java 镜像底层跑的就是这一类发行版。2.3 版本号背后的含义14.0.1.7这几个数字很多人搞不清。Java 14 是特性版本2020 年 3 月发布属于非 LTS长期支持版本。14.0.1是更新版本修了不少 bug7是构建编号。这里给个实操建议如果是新项目建议直接上 LTS 版本Java 8、11、17、21不要选 14 这种短期特性版。但如果你手头有老系统、老应用锁定了 Java 14或者课程资料、旧项目正好用这个版本那这个包也能用只是要知道它的生命周期早就结束了别指望官方补丁。3. Windows x86_64 落地部署流程这部分是重头戏照着做十分钟内能跑起第一个 Java 程序。3.1 环境准备与前提检查开始之前先确认三件事确认操作系统位数。这个包是 x86_64 即 64 位如果你的 Windows 是 32 位系统装了也启动不了。查看方式设置 - 系统 - 关于看系统类型一栏。确认是否已有其他 Java 版本。在 CMD 里输入java -version如果已经有 Java要注意版本冲突建议先卸载旧的或调整 PATH 顺序。确认磁盘空间。JRE 解压后大约 180~230MB预留 500MB 以上磁盘空间比较稳妥。注意下载 zip 包时要注意校验文件哈希。Red Hat 官方提供的包带有 SHA256 校验值下载后用certutil -hashfile java-14-openjdk-jre-14.0.1.7-1.windows.redhat.x86_64.zip SHA256核对一下防止下载损坏或被篡改。3.2 解压安装与路径规划这个 zip 包不需要运行安装向导解压即用。但路径规划一定要做对。推荐把 Java 运行时放统一目录比如C:\Java\jre-14.0.1.7。解压的时候注意不要只解压 zip 里的子文件夹要确保bin、lib、conf这些目录直接位于C:\Java\jre-14.0.1.7下。解压后检查目录结构如果看到C:\Java\jre-14.0.1.7\bin\java.exe存在就说明结构对了。为什么强调目录结构因为后面配 JAVA_HOME 时系统会认为$JAVA_HOME/bin/java.exe就是启动入口一旦层级多了一层所有命令都找不到。解压完还能顺手压缩一份副本放到其他盘以后重装系统直接解压又能用这就是绿色软件的好处。3.3 环境变量配置详解在 Windows 上配 Java 环境变量核心是三个变量JAVA_HOMEJAVA_HOMEC:\Java\jre-14.0.1.7注意这个变量值就是 JRE 根目录不要写成C:\Java\jre-14.0.1.7\bin。很多新手在这里翻车。PATH在Path变量里新增一行%JAVA_HOME%\bin放在所有已有 Java 相关路径之前这样可以保证命令行执行java时优先使用当前版本。CLASSPATHJRE 单独运行时一般不需要手动设置 CLASSPATH。Java 9 之后默认类路径是当前目录再手动配CLASSPATH反而容易出怪问题。除非跑的是特别老的程序否则保持留空。配置完成后重新打开 CMD 窗口让环境变量生效。3.4 验证安装是否成功打开新的 CMD依次执行java -version正常输出openjdk version 14.0.1 2020-04-14 OpenJDK Runtime Environment (build 14.0.17) OpenJDK 64-Bit Server VM (build 14.0.17, mixed mode, sharing)看到这三行说明虚拟机加载成功、版本正确、架构是 64 位。再执行javac -version此时应该提示找不到命令。这是正常的因为 JRE 里没有编译器。如果你连javac都不需要说明环境装对了如果还需要开发编译请换成 JDK。最后跑一个最小测试程序验证运行能力。新建一个Test.java文件内容public class Test { public static void main(String[] args) { System.out.println(JRE works on Windows x86_64!); } }不过这里有个关键点你没有任何编译器怎么把Test.java转成Test.class这是 JRE 和 JDK 分工的天然边界。你可以在开发机装有 JDK上编译好Test.class然后把.class文件或打包好的.jar拷到这台只装了 JRE 的机器上用java Test运行。这才是 JRE 的正确用法只运行不编译。4. 常见问题与排查技巧实录部署过程中最烦的不是安装本身而是各种报错。我把高频问题整理成速查表这里挑几个典型展开讲。4.1 “cannot find a valid baseurl for repo: base/7/x86_64”这个报错虽然经常出现在 Linux 的yum命令里但它的本质是软件源不可达。如果你是在 Windows 上做 Java 开发旁边一台 Linux 服务器配 Java 环境时遇到了这个错多半是仓库地址失效或网络不通。排查思路检查 DNSping mirror.centos.org通不通。检查仓库配置vi /etc/yum.repos.d/CentOS-Base.repo把 baseurl 里的地址换成国内可访问的镜像源。清理缓存重试yum clean all yum makecache。跟 JRE 本体的关系如果你是通过yum install java-14-openjdk来装 Java源挂了会导致装不上。此时有两个选择要么修好 yum 源要么直接用我们这篇文章讲的 zip 包手动部署。后者不依赖任何系统包管理器兼容性最好。4.2 JRE 安装出现脚本错误如果你用的是官方 exe 安装器或某些第三方安装脚本Windows 上偶尔会弹脚本错误对话框。这个多半是安装程序在调用 WSHWindows Script Host或 PowerShell 执行自定义动作时被系统安全策略拦截了。处理方法依次试右键安装包选以管理员身份运行。临时关闭杀毒软件或 Windows Defender 实时保护装完再开。如果是 IE 安全级别拦截 ActiveX 导致的历史问题升级到新版本 Java 基本不会出现因为 Java 早就弃用了浏览器 Applet 插件。热搜里那个 applet 插件 也顺带说一下Java 在浏览器里的 Applet 插件已经被彻底淘汰Java 9 以后的 JRE 不再支持浏览器插件。现在看到任何引导你装 Java 浏览器插件的页面直接忽略那是老古董。另外下载 exe 安装包时如果看到的是jre-8u202-windows-i586.exe这种老版本要特别注意i586 是 32 位版本64 位系统虽然能装但性能和内存上限都受限。能用 x86_64 构建就别用 i586。4.3 java: OutOfMemoryError: insufficient memory运行 Java 程序时如果报java.lang.OutOfMemoryError: insufficient memory说明 JVM 启动时申请不到足够内存要么系统剩余物理内存不够要么 32 位 JVM 进程地址空间有限约 1.5~2GB 上限。我们这个是 64 位 JRE所以主要查物理内存和 JVM 参数打开任务管理器看物理内存是否充足。如果机器内存不大可以调小堆内存java -Xms256m -Xmx512m -jar app.jar。检查是不是同时运行了太多 Java 进程用tasklist | findstr java查看所有 Java 进程把多余的杀掉。注意JRE 模式下-Xmx参数依然有效因为堆内存管理是 JVM 的事情和有没有编译器无关。所以生产环境调优 Java 应用时JRE 照样能接收所有 JVM 启动参数。还有个典型的坑Windows 下如果 PATH 里同时存在多个 Java可能一个 64 位 JRE 和一个 32 位 JRE 交替使用启动参数一模一样但内存上限差异巨大。用where java查看当前到底调用的哪个java.exe把 32 位的从 PATH 里干掉。4.4 Lombok 不工作You arent using a compiler supported by Lombok热搜里那条 you arent using a compiler supported by lombok 也值得聊聊。这虽然针对开发环境但反映了一个常见现象Java 版本和第三方库的兼容性问题。Lombok 通过注解处理器操作编译器内部 API 来生成代码新版本 JDK 一旦改了内部接口老版本 Lombok 就罢工。如果你在 JDK 14 上开发至少要用 Lombok 1.18.12 以上版本。如果只是运行用 JRE那段报错一般不会出现因为 JRE 不跑编译流程。给个通用建议开发环境用 JDK生产环境运行用 JRE或专用 runtime 镜像两边版本必须一致或兼容。不要开发机装 Java 17、生产机装 Java 14很多诡异 bug 就是这么来的。4.5 常见问题速查表现象大概率原因解决方案java不是内部或外部命令PATH 未配置重新配置%JAVA_HOME%\bin运行报版本 8 而不是 14系统里存在旧版本where java定位调整 PATH 顺序javac找不到装的是 JRE需要开发编译请换 JDK中文乱码控制台编码不一致java -Dfile.encodingutf-8 -jar app.jar双击 jar 无反应未关联 jar 文件右键 - 打开方式 - 选择 java.exeWindows 更新后 Java 不能跑环境变量丢失重新检查 JAVA_HOME 和 PATH5. 实际操作中的避坑建议最后压轴部分是我个人反复折腾 Java 环境积累下来的一些判断不一定写在任何官方文档里但很实用。5.1 依赖系统包管理器不如自带运行时如果你的 Windows 应用是要分发给很多用户的最稳的做法不是让用户自己装 JRE他们会装错、装不上、版本不对而是把 JRE 目录整个塞进你的应用安装包启动脚本里优先使用应用目录下的java.exe。比如你的应用目录结构MyApp/ ├── app/ │ └── myapp.jar ├── runtime/ │ ├── bin/ │ │ └── java.exe │ └── ... └── start.batstart.bat里写echo off set JAVA_HOME%~dp0runtime %JAVA_HOME%\bin\java -Xms256m -Xmx1024m -jar %~dp0app\myapp.jar这样用户机器上有没有装 Java 都无所谓应用自己带着运行时跑。我们这篇的 zip 包解压后完全符合便携运行时的要求。5.2 不要为了省事修改系统目录有些人喜欢把 JRE 解压到C:\Windows\System32或者C:\Program Files下的深层目录以为这样系统能找到。这其实是给自己埋雷路径带空格会导致脚本解析问题。系统目录会被杀毒软件重点监控降低性能。升级替换时容易改到系统文件权限。最好的习惯是专门建一层干净的目录比如C:\Java\里面按版本分文件夹jre-14、jdk-17、jre-21排列整齐。要切换版本时改一下JAVA_HOME就完事了。5.3 定期清理无用的 Java 版本Java 家谱里版本非常多很多人机器上装了 8、11、14、17 好多个 JDK/JREPATH 里各种路径交错最终导致运行某个应用时版本不对疯狂踩坑。清理原则保留项目实际要求的版本其余卸载。生产环境只保留一个 JRE。开发机可以保留 JDK 和 JRE 各一个但 PATH 里同一时刻只留一个生效版本。where java这个命令会列出所有能看到的 java.exe 位置结合起来逐个检查把无效的路径从 PATH 里删干净。5.4 关于小版本更新的执念很多人盯着 14.0.1.7 这种小版本号不放非要找到最新补丁不可。实际上对于非 LTS 版本补丁多几个少几个对普通应用影响没那么大。真正重要的是大版本比如 8 升级到 17会带来 API 破坏慎升。同大版本内的小版本升级风险极低放心升。安全敏感环境金融、政务必须跟紧安全公告及时更新。如果你是在内网离线环境部署记得提前下载好 zip 包放到本地文件服务器上这样不管哪台机器都能快速复制部署不用每次重新下载。6. 写在最后的操作心得说实话我在实际使用中发现真正困住大家的往往不是 Java 本身而是版本命名和发行方选择。java-14-openjdk-jre-14.0.1.7-1.windows.redhat.x86_64.zip这个包看起来又长又绕但只要你掌握了拆解方法——主版本、发行方、组件类型、平台架构——一眼就能判断它适不适合自己的场景。部署过程本身没什么黑魔法解压、配环境变量、验证三步就能搞定。剩下那些所谓的Java 环境问题十有八九是 PATH 顺序错了、版本混了、内存参数没调好。排查的时候别慌按照where java-java -version-echo %JAVA_HOME%这条路子走问题总能定位。最后再分享一个小技巧每次配完 Java 环境顺手写一个check-java.bat放到桌面内容就四行echo off echo JAVA_HOME%JAVA_HOME% where java java -version pause以后遇到任何环境问题先双击这个文件三秒钟就知道当前环境到底用的哪个 Java省去大量盲猜的时间。这招我用到现在专治各种我这没毛病啊的玄学环境问题。本文还有配套的精品资源点击获取