Java 14 Windows JRE 压缩包部署与避坑指南
简介本资源为 Java 14 的 OpenJDK JRE 运行环境安装包面向需要在 Windows 平台部署 Java 运行时的开发者、测试人员及运维人员尤其适合 Red Hat 系 Windows 环境下的应用调试与兼容性验证。压缩包共 358 个文件约 59.57MB以 82 个 dll 动态链接库、25 个 exe 可执行程序、63 组 license 与 additional_license_info 授权说明为主另含 policy 安全策略、properties 配置、cacerts 证书库、modules 模块描述及 release 版本信息等完整覆盖 JRE 运行所需的二进制、授权与配置组件。目前已有 622 人学习下载可作为搭建 Java 14 运行环境的可靠来源。包内目录结构规范便于快速定位运行时库、安全策略与证书配置适合用于本地开发调试、依赖 Java 14 的应用部署及版本兼容性排查帮助读者省去自行编译或四处搜集组件的麻烦。1. 从一个压缩包名说起Java 14 的 Windows 构建到底装了什么java-14-openjdk-jre-14.0.1.7-1.windows.redhat.x86_64.zip这个文件名第一眼看过去像是一串随机字符的堆叠但它其实是一份完整的“身份证”。拆开来看java-14是大版本openjdk是上游实现jre说明这是运行时环境而非完整 JDK14.0.1.7-1是补丁版本与构建号windows是目标平台redhat是构建方x86_64是架构。很多做 Java 桌面工具、内网服务或者嵌入式 Windows 设备的同行都会在某个时刻遇到这种由第三方厂商重新打包的 JRE 压缩包——它不来自 Oracle 官网也不走常规安装器而是一个解压即用的绿色目录。这篇文章要解决的就是当你手里只有这样一个 zip 时怎么把它变成可复现、可维护、可排错的运行时环境。适合谁看适合需要在 Windows 机器上批量部署 Java 14 应用、又不想装完整 JDK 的运维和开发也适合想搞清楚 OpenJDK 各发行版差异、避免踩到“版本号看着一样、行为却不同”这个坑的工程师。我不会假设你手里有源码包或者官方文档所有步骤都基于这个压缩包本身能提供的东西来推演。2. 解压之后先别急着配环境变量目录结构与版本核对拿到压缩包很多人第一反应是解压到C:\Program Files\Java然后配JAVA_HOME。这个习惯本身没错但在 Java 14 这个时间点上第三方构建的目录布局和 Oracle 老版本有明显差异先看清楚再动手能省掉后面很多返工。2.1 解压后的标准目录树与关键文件把 zip 解压到一个临时路径比如D:\tmp\jre14你会看到类似下面的结构。不同构建方可能略有出入但核心目录是一致的jre14/ ├── bin/ │ ├── java.exe │ ├── javaw.exe │ ├── keytool.exe │ └── server/ │ └── jvm.dll ├── conf/ │ ├── net.properties │ ├── security/ │ │ └── java.security │ └── logging.properties ├── lib/ │ ├── modules │ ├── jrt-fs.jar │ └── server/ ├── legal/ └── release这里有几个文件值得单独说。release是一个纯文本文件里面记录了JAVA_VERSION、IMPLEMENTOR、OS_NAME、OS_ARCH等键值对它是核对构建来源最可靠的东西比文件名更可信。conf/security/java.security控制着加密策略和证书信任链Java 14 已经默认禁用了 TLS 1.0 和 1.1如果你的老系统还在用这两个协议这里就是第一个翻车点。lib/modules是 jlink 之后的模块化运行时镜像Java 9 以后 JRE 不再是一个大 rt.jar而是这个文件承载了所有标准模块。提示不要用文件管理器直接双击java.exe来验证安装那样只会弹出一个空窗口然后消失。正确做法是开命令行。2.2 用 release 文件和 java -version 交叉验证先进入bin目录执行下面两条命令。第一条读release文件第二条让 JVM 自报家门# 进入解压后的 bin 目录 cd /d D:\tmp\jre14\bin # 查看构建元数据 type ..\release # 查看运行时版本 java.exe -versionrelease文件里你会看到类似JAVA_VERSION14.0.1和IMPLEMENTORRed Hat这样的行。java -version的输出则类似openjdk version 14.0.1 2020-04-14 OpenJDK Runtime Environment 18.9 (build 14.0.17) OpenJDK 64-Bit Server VM 18.9 (build 14.0.17, mixed mode, sharing)注意括号里的build 14.0.17这个7就是构建号对应文件名里的.7-1中的7。如果release文件里的版本和java -version对不上说明压缩包在传输或解压过程中被污染了别犹豫重新下载。这一步看起来多余但我见过至少三次因为压缩包损坏导致ClassNotFoundException却查了半天的案例。2.3 为什么 JRE 14 不再需要单独装 jre 目录从 Java 11 开始Oracle 和 OpenJDK 都取消了独立的 JRE 分发你下载的 JDK 里通过 jlink 可以生成自定义运行时。而这个压缩包本身就是别人已经 jlink 好的产物所以它没有jmods目录也没有javac.exe。这意味着你不能用它编译 Java 代码只能运行已经编译好的.class或.jar。如果你的场景里需要动态编译比如某些脚本引擎或者 JSP 容器这个包是不够的必须换完整 JDK。这一点在选型阶段就要确认清楚否则部署到一半才发现缺编译器那就只能走回头路。3. 在 Windows 上把 JRE 14 跑起来环境变量与最小验证目录看明白了接下来就是让它能被系统和其他程序找到。Windows 上配置 Java 环境有两个层面一是给当前用户或系统加JAVA_HOME和PATH二是让依赖 Java 的应用程序能通过注册表或配置文件定位到运行时。第三方构建的 JRE 通常不写注册表所以显式配置是必须的。3.1 设置 JAVA_HOME 与 PATH 的正确姿势假设你把解压后的目录移动到了C:\Tools\jre-14.0.1。用管理员权限打开 PowerShell执行以下命令。这里用setx而不是临时set是为了让配置持久化# 设置 JAVA_HOME注意路径不要带尾部反斜杠 setx JAVA_HOME C:\Tools\jre-14.0.1 /M # 把 bin 目录追加到系统 PATH $oldPath [Environment]::GetEnvironmentVariable(Path, Machine) $newPath $oldPath ;%JAVA_HOME%\bin [Environment]::SetEnvironmentVariable(Path, $newPath, Machine)/M表示写入系统级变量需要管理员权限。如果你只想给当前用户配去掉/M并把Machine换成User。这里有个血泪经验JAVA_HOME的值不要带结尾的反斜杠也不要带bin很多构建工具比如某些版本的 Gradle 和 Maven 插件会自己拼接\bin\java.exe你多写一个斜杠就会变成C:\Tools\jre-14.0.1\\bin\java.exe虽然 Windows 通常能容忍但个别脚本会直接报路径无效。配置完成后必须新开一个命令行窗口旧窗口的环境变量不会刷新。然后执行echo %JAVA_HOME% java -version如果echo输出的路径正确java -version也能打印出 14.0.1说明环境变量生效了。3.2 用最小 Java 程序验证运行时完整性光看版本号还不够得实际跑一个类加载和标准库调用的流程。写一个最简单的测试类编译工作可以在别的机器上用完整 JDK 完成这里只验证运行// MiniCheck.java public class MiniCheck { public static void main(String[] args) { // 打印运行时版本 System.out.println(Runtime: Runtime.version()); // 触发标准库中的加密模块验证 modules 文件完整 try { javax.crypto.Cipher c javax.crypto.Cipher.getInstance(AES/GCM/NoPadding); System.out.println(Crypto OK: c.getAlgorithm()); } catch (Exception e) { System.out.println(Crypto FAIL: e.getMessage()); } // 触发网络模块验证 conf 目录可读 System.out.println(HTTP Client: java.net.http.HttpClient.newHttpClient().version()); } }用完整 JDK 编译成MiniCheck.class然后拷贝到目标机器上执行java -cp . MiniCheck预期输出里应该包含Runtime: 14.0.17、Crypto OK: AES/GCM/NoPadding和HTTP Client: HTTP_2。如果加密模块报NoSuchAlgorithmException大概率是lib/modules被裁剪过这个 JRE 包不完整如果 HTTP 客户端报错检查conf/net.properties是否存在。这个最小验证能覆盖模块系统、加密库和网络配置三个最容易出问题的区域比单纯跑-version有意义得多。3.3 让 Windows 服务或计划任务找到这个 JRE很多内网工具是以 Windows 服务方式运行的服务账户通常是LocalSystem它的环境变量和当前登录用户不一样。如果你在用户级配了JAVA_HOME服务是读不到的。稳妥做法是在服务的启动脚本里硬编码完整路径或者用setx /M写系统级变量。另外Java 14 在 Windows 上默认使用%TEMP%作为临时目录服务账户的临时目录可能是C:\Windows\Temp权限不足时会导致java.io.IOException: Unable to create temporary file。可以在启动参数里显式指定java -Djava.io.tmpdirC:\Tools\jre-14.0.1\tmp -jar app.jar提前建好tmp目录并给服务账户写权限能避免一类很隐蔽的启动失败。4. 避坑与排查JRE 14 在 Windows 上的五个高频翻车点即使版本核对无误、环境变量也配了实际跑起来还是会遇到一些和旧版本不一样的行为。下面这五条是我在多个项目里反复踩过的按“现象 → 原因 → 解决”整理你可以直接对照排查。4.1 现象启动报 “Unrecognized VM option UseConcMarkSweepGC”原因很直接CMS 垃圾回收器在 Java 14 里已经被彻底移除Java 9 标记废弃14 正式删除。很多老应用的启动脚本里还带着-XX:UseConcMarkSweepGC在 Java 8 上跑得好好的换到 14 直接启动失败。解决把启动参数里的 CMS 相关选项删掉换成 G1 或 ZGC。Java 14 默认就是 G1通常不需要显式指定。如果确实需要低延迟可以加-XX:UseZGC但注意 ZGC 在 Windows 上的支持是实验性的需要额外加-XX:UnlockExperimentalVMOptions。更稳妥的做法是先用默认 G1 跑起来观察 GC 日志再决定要不要换。4.2 现象TLS 握手失败日志显示 “No appropriate protocol”原因Java 14 的java.security里默认禁用了 TLS 1.0 和 TLS 1.1很多内网老服务只支持这两个协议。这不是 bug是安全策略的收紧。解决优先推动服务端升级到 TLS 1.2。如果短期内改不了可以临时在conf/security/java.security里找到jdk.tls.disabledAlgorithms这一行把TLSv1, TLSv1.1删掉然后重启应用。但这样做会降低安全性只建议在隔离内网里作为过渡。另一个更干净的办法是在启动参数里指定-Djdk.tls.client.protocolsTLSv1.2强制客户端只用 1.2如果服务端不支持就直接失败避免降级到不安全的协议。4.3 现象java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter原因JAXB 和 JAX-WS 这些 Java EE 模块在 Java 11 里就被移出了标准库Java 14 自然也没有。很多老代码直接 import 了javax.xml.bind包编译时用的是旧 JDK运行时换到 14 就炸了。解决如果应用是你自己维护的加 Maven 依赖jakarta.xml.bind:jakarta.xml.bind-api和org.glassfish.jaxb:jaxb-runtime。如果是第三方 jar 没法改代码可以把这两个 jar 放到lib/ext目录下——但 Java 14 已经不支持扩展目录机制了正确做法是用-cp或-classpath把 jar 加进去或者用-Xbootclasspath/a:追加。后者在 Java 14 上仍然可用但属于内部 API未来版本可能移除能改代码就改代码。4.4 现象中文乱码控制台输出变成问号或方块原因Windows 控制台默认代码页是 GBK936而 Java 14 在启动时如果没指定file.encoding会跟随系统区域设置。但很多第三方构建的 JRE 在conf里没有正确设置导致System.out的编码和实际控制台不匹配。解决启动时显式指定编码。Java 14 推荐用-Dfile.encodingUTF-8同时把控制台代码页切到 65001chcp 65001 java -Dfile.encodingUTF-8 -jar app.jar注意chcp只影响当前窗口服务里跑的话需要在脚本开头执行。另外-Dfile.encoding在 Java 18 之后行为有变化但 14 上这个参数是有效的。4.5 现象解压后java.exe被杀毒软件直接隔离原因第三方构建的 JRE 压缩包里bin/server/jvm.dll和java.exe没有数字签名或者签名不被国内杀软信任。这不是 Java 本身的问题是分发渠道的问题。解决把解压目录加入杀毒软件的白名单或者用完整 JDK 自己 jlink 一个运行时。如果必须用这个包建议在部署前先在一台干净机器上做全量扫描确认没有捆绑其他东西。另外解压时用命令行tar -xf或 7-Zip不要用 Windows 自带的解压向导后者有时会丢失文件属性导致java.exe无法执行。5. 进阶用 jlink 和 jpackage 把这个 JRE 变成可分发产物如果你不只是想在一台机器上跑而是要把 Java 14 应用分发给没有 Java 环境的 Windows 用户那这个 JRE 压缩包可以作为一个起点。Java 14 自带了jpackage工具孵化阶段配合jlink可以做出自带运行时的安装包。不过注意jpackage在完整 JDK 里才有这个 JRE 包里没有所以你需要另外准备一个同版本的完整 JDK 来做构建构建产物再分发。5.1 用 jlink 裁剪出更小的运行时假设你的应用只用到java.base、java.sql和java.logging三个模块可以用完整 JDK 里的jlink生成一个精简运行时jlink --module-path C:\Tools\jdk-14.0.1\jmods ^ --add-modules java.base,java.sql,java.logging ^ --output C:\build\mini-jre ^ --strip-debug ^ --no-header-files ^ --no-man-pages ^ --compress2--strip-debug去掉调试符号--compress2启用压缩--no-header-files和--no-man-pages去掉 C 头文件和手册页。这样生成的mini-jre通常只有 40MB 左右比完整 JRE 小一半以上。参数里的--module-path必须指向完整 JDK 的jmods目录不能用 JRE 的lib/modules代替因为jmods里包含模块的完整元数据。5.2 用 jpackage 打成 exe 安装包jpackage可以把应用 jar 和运行时一起打成一个.exe或.msi。下面是一个最小命令jpackage --type exe ^ --name MyApp ^ --input C:\build\app ^ --main-jar app.jar ^ --main-class com.example.Main ^ --runtime-image C:\build\mini-jre ^ --win-console ^ --win-dir-chooser--input是存放应用 jar 的目录--runtime-image指向上一步 jlink 生成的运行时--win-console表示保留控制台窗口调试时有用正式发布可以去掉--win-dir-chooser允许用户选择安装目录。生成的安装包会自带运行时用户机器上不需要预装 Java。这里有个坑jpackage在 Java 14 上需要 WiX Toolset 3.x 才能生成 exe如果没装会报错提前在构建机上装好。5.3 验证分发产物是否真的独立打包完成后在一台没有 Java 环境的 Windows 虚拟机上安装然后检查两件事一是应用能否正常启动二是安装目录下是否存在runtime子目录。用where java确认系统 PATH 里没有其他 Java再运行应用。如果启动失败查看安装目录下的app\MyApp.cfg文件里面记录了运行时路径和 JVM 参数可以手动调整。我一般会在这个阶段故意把系统里的 Java 全部卸载确保测试环境干净否则很容易出现“在我机器上能跑”的玄学问题。最后说一个我自己的习惯每次拿到这种第三方构建的 JRE 压缩包我都会先算一遍 SHA256和分发方提供的校验值比对然后把这个哈希值记在部署文档里。后面如果出现运行时行为异常第一件事就是重新校验文件完整性。这个动作花不了两分钟但能排除掉一大类“莫名其妙”的故障。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

AI写论文工具实测:宏智树AI如何实现毕业智能通关

AI写论文工具实测:宏智树AI如何实现毕业智能通关

论文季一到,朋友圈里全是“AI写论文到底能不能用”的讨论。我自己今年也陪着几个学弟学妹跑完了从选题到答辩模拟的全流程,前后用了大半年的零散时间,把市面上常见的5类AI写论文工具挨个实测了一遍。有的是通用对话模型,有的主打润…

2026/10/16 23:08:35 阅读更多 →
CUA通用用户访问规范:三十年前的交互标准为何至今仍适用

CUA通用用户访问规范:三十年前的交互标准为何至今仍适用

1. 内容整体设计与思路拆解这两年我带过不少做桌面端和 Web 端产品的团队,每次评审界面方案的时候,我都会问一个问题:你们的快捷键、菜单布局、弹窗按钮位置,到底是怎么定出来的?大多数人会愣一下,然后说&q…

2026/10/16 23:08:35 阅读更多 →
Microsoft Rewards自动刷分神器rewards-farmer:10分钟免费实现Bing奖励全自动收割

Microsoft Rewards自动刷分神器rewards-farmer:10分钟免费实现Bing奖励全自动收割

【免费下载链接】rewards-farmer Automation for MS Rewards based on https://youtu.be/4qdPcMNaioA 项目地址: https://gitcode.com/gh_mirrors/re/rewards-farmer 点击查看 免费下载 想每天在 Bing 上领 Microsoft Rewards 积分,却要手动搜 20 次、点…

2026/10/16 23:08:35 阅读更多 →

最新新闻

企业级多模态RAG知识库搭建实战:从0到1全流程复盘

企业级多模态RAG知识库搭建实战:从0到1全流程复盘

做企业级 RAG 知识库这件事,我一开始是真没当回事。直到接了一个装修公司项目,才发现自己太天真。这个项目不是网上那种“拿十几个PDF跑个问答Demo”的玩具,而是要把这家装修公司过去十几年积攒的图纸、合同、报价单、工地照片、客户聊天记录…

2026/10/17 8:21:20 阅读更多 →
AI品牌力建设指南:从种草提效到心智占领的系统路径

AI品牌力建设指南:从种草提效到心智占领的系统路径

想清楚一个问题:很多品牌都在讲“用AI做内容”,但真正把AI做成一套可复用的品牌增长系统的,并不多。我做营销技术咨询这几年,接触过不少品牌方的市场负责人,大家普遍的状态是——买了AI会员、尝试过生成热点文案、用数…

2026/10/17 8:21:20 阅读更多 →
Agentic RAG实践:查询路由与Web兜底设计,解决RAG上线三大坑

Agentic RAG实践:查询路由与Web兜底设计,解决RAG上线三大坑

如果你的RAG系统上线之后,用户问一句"你好",向量检索也能认认真真去知识库里找有没有"你好"的答案,那说明你正处在大多数RAG项目从Demo走向生产的第一道坎上。我之前给某公司的客服知识库做过一套问答系统,初…

2026/10/17 8:21:20 阅读更多 →
vLLM高并发推理引擎:PagedAttention与连续批处理实战指南

vLLM高并发推理引擎:PagedAttention与连续批处理实战指南

每当看到群里有人问“为什么我本地起的LLM服务一遇到并发就报错”,我就知道对方多半还没有接触过vLLM这类高吞吐推理引擎。单个请求跑起来很顺畅,模型回答质量也没问题,但只要并发一上来,显存占用就像被倒进了无底洞,速…

2026/10/17 8:21:20 阅读更多 →
GEO实战:让DeepSeek、Kimi等国产大模型主动引用你的内容

GEO实战:让DeepSeek、Kimi等国产大模型主动引用你的内容

1. 先别急着问“怎么做”,得先搞懂AI凭什么推荐你的内容1.1 为什么传统的SEO经验突然失灵了这几年做内容运营的朋友应该有一个共同的感受:在搜索框上那一套“霸屏”打法,放到AI问答里全都不太对劲。我以前给某个知识类站点做优化的时候&#…

2026/10/17 8:21:20 阅读更多 →
ADS-B Python环境搭建:从RTL-SDR驱动到航班数据解码

ADS-B Python环境搭建:从RTL-SDR驱动到航班数据解码

简介:这是一套面向Python开发者与航空数据爱好者的基础ADS-B消息处理工具库,适用于需要解析、模拟或调试ADS-B(自动相关监视)原始报文的初学者与中级实践者。资源提供完整的开源Python软件包,支持快速安装与即用式调用…

2026/10/17 8:20:20 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →