Java快速上手-环境配置
实际项目开发中java的开发环境主要包含操作系统,jdk,maven,git,ide和mysql数据库.后面的装主要针对windows系统,其它系统将会简单带过.为方便大家下载,我把所有用到的工具和配置都打包成虚拟硬盘文件,放到网盘中,大家可以在网盘中下载.网盘地址链接: https://pan.baidu.com/s/1nbCxam7cxH7v_rof8qXV6g?pwdu5u9 提取码: u5u9下面的开发工具安装过程我主要讲解安装原理,不仅仅知道怎么做,还需要知道为什么这么做.网盘中的文件:右键菜单cmd.reg双击执行后,可以支持在任意文件夹下点鼠标的右键菜单中增加以管理员身份打开控制台webtools11.vhd包含后面安装的所有工具的虚拟磁盘文件,可以在虚拟机中加载,也可以在windows中挂到某个盘符.createdisk11.cmd双击执行后,可以把webtools11.vhd文件挂在到某个盘符或者卸载盘符. 如果该盘符存在.则需要修改该文件中的letter变量为未使用的盘符,默认盘符设置为E.你可以改为X或Y或Z,只要没有使用的盘符皆可.1.安装jdkJava Development Kit (JDK) 是运行和开发 Java 应用程序所必需的环境。以下是详细的安装步骤1.1 下载 JDK访问 Oracle JDK 官网 或 OpenJDK 官网。根据你的操作系统Windows、macOS、Linux,Solaris选择对应的版本。根据你的硬件架构选择x64 (x86-64/AMD64)/aarch64 / arm64,普通的电脑一般都是选择x64. 后面其他软件的安装也类似,不再赘述.建议选择最新的 LTS长期支持版本例如JDK8/JDK17或 JDK 21或JDK25版本上不需要选择最新版本,最新意味着不稳定,实践机会比较少.选择压缩版本还是安装版本,建议尽量选择压缩版本.解压就能直接使用,相对来说迁移更方便.多版本选择和安装,不同的公司不同的项目,可能使用不同的版本.我们可以把多个版本都下载下来.根据实际情况软连接到不同的版本x64、aarch64 与 arm64 的区别x64 (x86-64/AMD64)这是 Intel 和 AMD 为个人电脑PC、服务器和笔记本电脑设计的 64 位指令集架构。它源自 x86 架构是目前 Windows、Linux 和 macOS 桌面系统的主流架构。普通台式机和笔记本电脑通常选择 x64 版本。aarch64 / arm64这是 ARM 公司设计的 64 位指令集架构。aarch64是 ARMv8-A 架构的官方名称而arm64是 Apple、Linux 发行版等常用的别名两者通常指代同一架构。它主要用于移动设备手机、平板、苹果 M 系列 Mac、树莓派、部分服务器和嵌入式设备。如果你的设备是基于 ARM 芯片如 Apple Silicon Mac、树莓派 3/4/5、某些安卓设备则应选择 aarch64/arm64 版本。鸿蒙系统HarmonyOS使用的架构鸿蒙系统是华为开发的分布式操作系统支持多种设备类型。在架构选择上手机、平板、智能手表等移动设备通常基于ARM架构aarch64/arm64因为这类设备大多使用ARM芯片。PC、笔记本电脑如果鸿蒙系统未来扩展到x86平台则可能支持x64架构但目前主要设备仍是ARM架构。物联网设备、嵌入式系统可能使用ARM Cortex-M/R系列32位或RISC-V等架构具体取决于硬件。因此在为鸿蒙设备选择JDK或其他软件时通常应选择aarch64/arm64版本除非官方明确提供了x64版本。建议在下载前查看华为官方文档或设备规格确认具体的CPU架构。简单来说普通电脑Intel/AMD CPU选 x64苹果 M 系列 Mac、树莓派等 ARM 设备选 aarch64/arm64。1.2 安装 JDKWindows: 直接下载zip压缩文件,解压之后直接就能使用.macOS: 打开下载的.dmg文件将 JDK 拖入应用程序文件夹。Linux: 通常可以通过包管理器安装例如在 Ubuntu/Debian 上使用sudo apt install openjdk-17-jdk。解压安装的多个版本放置位置如下:D:\backup\jdk\jdk1.8.0_491D:\backup\jdk\jdk-17.0.19D:\backup\jdk\jdk-21.0.11D:\backup\jdk\jdk-25.0.3新建软连接到版本:: 创建软连接到jdk8/jdk17/21/25. mklink /J D:\webtools\jdk8 D:\backup\jdk\jdk1.8.0_491 mklink /J D:\webtools\jdk17 D:\backup\jdk\jdk-17.0.19 mklink /J D:\webtools\jdk21 D:\backup\jdk\jdk-21.0.11 mklink /J D:\webtools\jdk25 D:\backup\jdk\jdk-25.0.3 mklink /J D:\webtools\jdk D:\webtools\jdk17如果要切换版本,只需要删除软连接,重新创建新的软连接即可.比较省事.也不用复制粘贴.当前企业中使用最多的版本还是jdk8和jdk17,由于jdk8实在太老了.我们学习时中使用jdk17更合适些1.3 配置环境变量安装完成后需要配置JAVA_HOME和PATH环境变量以便在终端或命令行中全局使用java和javac命令。Windows:右键点击“此电脑” - “属性” - “高级系统设置” - “环境变量”。或者命令行直接执行sysdm.cpl,3 “环境变量”在“系统变量”中新建变量JAVA_HOME值为你的 JDK 安装路径例如D:\webtools\jdk。这里设置软连接的位置.编辑Path变量增加%JAVA_HOME%\bin。macOS / Linux:将以下行添加到你的 shell 配置文件如~/.bashrc,~/.zshrc中exportJAVA_HOME/path/to/your/jdk# 例如 /usr/lib/jvm/java-17-openjdkexportPATH$JAVA_HOME/bin:$PATH然后执行source ~/.bashrc或对应配置文件使配置生效。1.4 验证安装打开终端或命令提示符输入以下命令验证安装是否成功java-versionjavac-version如果正确显示版本信息则说明 JDK 安装和配置成功。否则,可能就是上面的环境变量设置错误导致的2.安装mavenApache Maven 是一个项目管理和构建自动化工具广泛用于 Java 项目。以下是详细的安装步骤2.1 下载 Maven访问 Maven 官网下载页面。选择最新的稳定版本例如apache-maven-3.9.16-bin.zip或.tar.gz。下载对应操作系统的二进制压缩包。D:\backup\apache-maven-3.9.162.2 安装 MavenWindows:将下载的压缩包解压到你选择的目录例如D:\webtools\maven。无需运行安装程序解压即用。新建软连接到版本:: 创建软连接到maven. mklink /J D:\webtools\maven D:\backup\apache-maven-3.9.16macOS / Linux:打开终端使用tar命令解压下载的.tar.gz文件到指定目录例如/usr/local/apache-maven-3.9.16。tar-xzfapache-maven-3.9.16-bin.tar.gz-C/usr/local/2.3 配置环境变量安装完成后需要配置MAVEN_HOME和PATH环境变量以便在终端或命令行中全局使用mvn命令。Windows:右键点击“此电脑” - “属性” - “高级系统设置” - “环境变量”。在“系统变量”中新建变量MAVEN_HOME值为你的 Maven 解压路径例如D:\webtools\maven。编辑Path变量新增%MAVEN_HOME%\bin。macOS / Linux:将以下行添加到你的 shell 配置文件如~/.bashrc,~/.zshrc中exportMAVEN_HOME/usr/local/apache-maven-3.9.16# 请替换为你的实际路径exportPATH$MAVEN_HOME/bin:$PATH然后执行source ~/.bashrc或对应配置文件使配置生效。2.4 验证安装打开终端或命令提示符输入以下命令验证安装是否成功mvn-v如果正确显示 Maven 版本、Java 版本等信息则说明 Maven 安装和配置成功。3.安装gitGit 是一个分布式版本控制系统用于跟踪代码变更.以下是详细的安装步骤3.1 下载 GitWindows:访问 Git for Windows 官网 下载压缩包。或者从 Git 官方下载页面 获取可移动版本执行安装的exe文件或者压缩文件macOS:推荐使用 Homebrew 安装在终端中运行brew install git。也可以从 Git 官方下载页面 下载 macOS 安装程序。Linux:使用系统包管理器安装。例如Ubuntu/Debian:sudo apt install gitFedora:sudo dnf install gitCentOS/RHEL:sudo yum install git3.2 安装 GitWindows:运行下载可移动版本的PortableGit-2.55.0.3-64-bit.7z.exe安装程序或者压缩包Git-2.55.0.3-64-bit.tar.bz2在安装向导中大部分选项保持默认即可。建议勾选“Git Bash Here”和“Git GUI Here”以方便使用。一路点击“Next”直到安装完成。创建软连接: mklink /J D:\webtools\git D:\backup\Git-2.55.0.3-64-bitmacOS (通过安装程序):打开下载的.dmg文件。将 Git 图标拖入“应用程序”文件夹。macOS/Linux (通过包管理器):安装命令执行完毕后即安装成功。3.3 配置 Git可选但推荐安装完成后,还需要配置环境变量GIT_HOMED:\webtools\gitPATH%GIT_HOME%\bin;%GIT_HOME%\cmd;%GIT_HOME%\mingw64\bin;%GIT_HOME%\usr\bin,分别指向安装路径和可执行文件的执行路径.安装完成后建议配置你的用户名和邮箱这在提交代码时是必需的。打开终端Windows 上为 Git Bash 或命令提示符/command运行以下命令gitconfig--globaluser.name你的名字gitconfig--globaluser.email你的邮箱example.com3.4 验证安装打开终端或命令提示符输入以下命令验证安装是否成功git--version如果正确显示 Git 版本信息例如git version 2.55.0.windows.3则说明 Git 安装成功。3.5 开源软件源码的下载地址https://gitcode.net/https://e.coding.net/https://codeup.aliyun.com/https://gitee.com/https://github.com/这些网站上提供了大量优秀的开源软件项目,我们利用git版本管理工具,以非常简便的方式下载到别人写好的代码来研究.建议在这些网站上注册账号.4.安装IDESpring Tool Suite (STS) 是一个基于 Eclipse 的集成开发环境专门为 Spring 应用开发进行了优化。以下是详细的安装步骤idea 是一个非常优秀的商业化集成开发环境.但由于需要购买会员,我们这里仅做简单介绍.主要还是用4.1 下载 STS访问 Spring Tools 官网下载页面。根据你的操作系统Windows、macOS、Linux选择对应的版本。建议下载最新的稳定版本通常提供.zipWindows/Linux或.dmgmacOS格式的压缩包。4.2 安装 STSWindows:将下载的.zip文件解压到你选择的目录例如D:\backup\sts-5.2.0.RELEASE。无需运行安装程序解压即用。创建软连接 mklink /J D:\webtools\sts D:\backup\sts-5.2.0.RELEASEmacOS:打开下载的.dmg文件。将 STS 应用图标拖入“应用程序”文件夹。Linux:将下载的.tar.gz文件解压到指定目录例如/opt/sts。sudotar-xzfspring-tool-suite-*.tar.gz-C/opt/4.3 启动与配置首次启动:Windows: 进入解压目录双击SpringToolsForEclipse.exe。macOS: 在“应用程序”文件夹中双击 STS 应用图标。Linux: 进入解压目录运行./sts-5.2.0.RELEASE或./STS。选择工作空间:启动时会提示你选择一个工作空间Workspace目录用于存放项目文件。可以接受默认路径或指定一个新目录。配置 JDK可选:如果 STS 没有自动检测到已安装的 JDK可以手动配置打开菜单Window-Preferences。导航到Java-Installed JREs。点击Add…选择Standard VM然后浏览到你的 JDK 安装目录例如D:\webtools\jdk或/usr/lib/jvm/java-17-openjdk。点击Finish并勾选新增的 JRE。4.4 验证安装成功启动 STS 后你将看到欢迎界面。可以尝试创建一个简单的 Spring Boot 项目来验证环境点击菜单File-New-Spring Starter Project。填写项目信息如 Group、Artifact选择依赖例如Spring Web然后点击Finish。项目创建成功后右键点击项目选择Run As-Spring Boot App如果控制台没有报错并显示启动日志则说明 STS 安装和配置成功。5.安装mysql数据库MySQL 8.0.46 是一个流行的开源关系型数据库。以下是使用压缩包ZIP/TAR进行安装的详细步骤适用于希望自定义安装路径或快速部署的场景。5.1 下载 MySQL 8.0.46 压缩包访问 MySQL 社区版下载页面。在Operating System下拉菜单中选择你的系统例如 Windows、Linux - Generic。在版本列表中找到MySQL Community Server 8.0.46。选择对应的压缩包格式Windows: 下载mysql-8.0.46-winx64.zip64位。Linux/macOS: 下载mysql-8.0.46-linux-glibc2.17-x86_64.tar.xz或其他适合你系统的通用 Linux 版本。5.2 解压与安装Windows:将下载的.zip文件解压到你选择的目录例如D:\backup\mysql-8.0.46。在解压目录下创建data文件夹用于存放数据库文件和my.cnf配置文件见下一步。创建软连接: mklink /J d:\webtools\mysql D:\backup\mysql-8.0.46Linux/macOS:打开终端使用以下命令解压以 Linux 为例sudotar-xvfmysql-8.0.46-linux-glibc2.17-x86_64.tar.xz-C/usr/local/进入解压目录创建软链接可选方便使用cd/usr/localsudoln-smysql-8.0.46-linux-glibc2.17-x86_64 mysql创建data目录和配置文件my.cnf见下一步。5.3 配置文件与初始化创建配置文件Windows在解压目录例如D:\webtools\mysql下创建my.cnf内容如下[mysqld] # 设置 MySQL 安装目录 basedirD:/webtools/mysql # 设置 MySQL 数据目录 datadirD:/webtools/mysql/data # 设置端口 port3306 # 允许最大连接数 max_connections200 # 服务端默认字符集 character-set-serverutf8mb4 # 创建新表时将使用的默认存储引擎 default-storage-engineINNODBLinux/macOS在/etc/my.cnf或/etc/mysql/my.cnf或解压目录下的my.cnf中添加类似配置注意修改basedir和datadir路径。初始化数据库打开终端Windows 使用命令提示符或 command以管理员身份运行进入 MySQL 的bin目录。# WindowscdD:\webtools\mysql\bin# Linux/macOScd/usr/local/mysql/bin执行初始化命令会生成初始 root 密码请保存# Windowsmysqld--initialize--console# Linux/macOS可能需要 sudosudo./mysqld--initialize--console注意输出中的临时 root 密码例如[Note] [MY-010454] [Server] A temporary password is generated for rootlocalhost: ********5.4 启动 MySQL 服务Windows:安装 MySQL 为系统服务可选便于开机自启mysqld--installmysql启动服务net start mysql或者直接运行不安装服务mysqld--consoleLinux/macOS:启动 MySQL 服务sudo/usr/local/mysql/support-files/mysql.server start或者使用 systemd如果配置了sudosystemctl start mysql5.5 修改 root 密码并验证安装使用初始密码登录 MySQLmysql-uroot-p输入上一步保存的临时密码登录成功后立即修改 root 密码ALTERUSERrootlocalhostIDENTIFIEDBY你的新密码;FLUSHPRIVILEGES;验证安装SELECTVERSION();如果返回8.0.46则说明 MySQL 8.0.46 压缩版安装成功。5.6 配置环境变量可选但推荐为了方便在任意目录使用mysql、mysqld等命令可以将其bin目录加入系统 PATHWindows在系统环境变量Path中添加D:\webtools\mysql\bin。Linux/macOS在~/.bashrc或~/.zshrc中添加exportPATH/usr/local/mysql/bin:$PATH然后执行source ~/.bashrc。5.7 使用客户端链接mysql服务器解压SQLyog13.1.1.rar文件,然后再解压的文件中找到SQLyog.exe文件双击执行,如果提示输入验证码,从当前目录下的sn/key.txt文件中,复制其中的序列号输入即可打开这里指定主机和账号密码,点测试连接,如果提示成功.再点链接,即可访问数据库服务器.

相关新闻

2026毕业论文查重率小程序怎么选?实测这5家帮你避坑,学范文稳居榜首

2026毕业论文查重率小程序怎么选?实测这5家帮你避坑,学范文稳居榜首

先看结论:2026年毕业论文查重率赛道,我们实测了市面上主流的小程序/平台,学范文凭借“写作查重降重排版”真一站式闭环排在第一,PaperPass靠海量对比库与出报告速度拿下第二,知网个人查重以高校官方指定背书稳守第三。…

2026/10/20 9:33:43 阅读更多 →
小模型自主决策潜力:7B参数下的智能优化实践

小模型自主决策潜力:7B参数下的智能优化实践

1. 项目背景与核心价值 去年我在参与一个智能客服系统优化项目时,发现一个有趣的现象:当我们把大模型生成的回复方案交给小模型执行时,那些参数量在1B以下的小模型经常能给出比预期更灵活的响应。这让我开始系统性研究小模型的"隐藏能力…

2026/10/20 12:48:02 阅读更多 →
2026发稿平台选型指南:三大主流平台优势详解

2026发稿平台选型指南:三大主流平台优势详解

在品牌公关塑造、SEO全域优化、网络舆情建设的完整营销体系中,新闻软文发稿始终是高性价比、高稳定性、长效沉淀品牌资产的核心营销方式。步入2026年,AI搜索GEO优化、圈层精准传播、全域流量深耕成为品牌营销主流趋势,媒体渠道的选择直接决定…

2026/10/19 23:51:26 阅读更多 →

最新新闻

上下文工程实战指南:从提示词到高质量大模型应用

上下文工程实战指南:从提示词到高质量大模型应用

1. 上下文工程到底是什么,为什么大家都在提1.1 从“提示词”到“上下文工程”先用大白话把这件事说清楚。过去我们聊得最多的是“提示词”,就是告诉模型“帮我写一篇周报”“总结这段文字”,这像是到一个陌生摊位前报菜名。你只说了一句“来碗…

2026/10/20 12:48:35 阅读更多 →
千万级CSV流式导出:零拷贝写入与JVM内存规避方案

千万级CSV流式导出:零拷贝写入与JVM内存规避方案

简介:本资源是一套面向Java中高级开发者的高性能CSV大数据导出实战方案,专为解决千万级数据导出时内存溢出、响应迟滞等生产痛点而设计。方案采用分批处理多线程并行流式写入核心策略,整合Apache Commons CSV或原生BufferedWriter逐行操作&am…

2026/10/20 12:48:35 阅读更多 →
Flutter StatelessWidget vs StatefulWidget 决策指南:状态边界与性能优化

Flutter StatelessWidget vs StatefulWidget 决策指南:状态边界与性能优化

1. 为什么这个问题值得花一整篇来聊——从三个真实翻车现场说起在 Flutter 开发中,“该用 StatelessWidget 还是 StatefulWidget”看起来是个入门级问题,但恰恰是这个看似简单的问题,让不少有 React 或 Vue 经验的开发者栽了跟头。我见过太多…

2026/10/20 12:48:35 阅读更多 →
AI对话落下闳:用大模型重算太初历的时间智慧

AI对话落下闳:用大模型重算太初历的时间智慧

做"AI中国故事"这个系列的时候,我的目标一直很明确:不做一个挂着历史文化名字的语音助手,而是真正把那些被现代人忽略的名字、被算法时代遗忘的计算智慧,用对话的方式重新"活"一遍。系列第一期,我…

2026/10/20 12:48:35 阅读更多 →
AI营销操盘手能力模型与十大品牌选型实战指南

AI营销操盘手能力模型与十大品牌选型实战指南

1. 操盘手和品牌之间,差着一条完整的交付闭环最近总有做企业的朋友问我,AI营销是不是已经变成“买工具就能跑”的赛道了。我做了多年的营销咨询,也在多个项目里亲自下场带过AI营销的完整链路,说实话,这波AI能力升级之后…

2026/10/20 12:48:35 阅读更多 →
2026网络安全就业全景:岗位趋势、薪酬地图与技能风向

2026网络安全就业全景:岗位趋势、薪酬地图与技能风向

1. 为什么我会在年底啃这份招聘数据:调研背景与样本口径每年四季度都是观察次年就业市场最好的窗口期,因为各大公司的HC预算、校招指标、社招编制基本都在这个阶段定调。我做了近十年的安全行业职业发展相关调研,今年选了2025年10月到2026年1…

2026/10/20 12:47:34 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/20 10:02:08 阅读更多 →
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/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练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/20 9:50:45 阅读更多 →