JDK 11 下载安装与环境配置全攻略:多版本共存与避坑指南
1. 为什么 JDK 11 依然是很多项目的首选版本JDK 11 是 Java 生态里一个很特殊的存在。它既不像 JDK 8 那样“老而弥坚”也不像 JDK 17、JDK 21 那样带着一堆新特性往前冲但它恰好卡在一个非常舒服的位置上语言特性够用、性能足够好、长期支持周期长、周边工具链兼容性成熟。很多团队在从 JDK 8 往上升级时第一站选的就是 JDK 11而不是直接跳到 17 或 21原因就在这里。我自己经手过的项目里有做后台服务的有做数据处理管道的也有做桌面工具和构建脚本的。这些项目在选 JDK 版本时考虑的点其实很一致第一运行稳定不能因为 JDK 本身的问题导致线上抖动第二依赖库要能跟上不能出现某个核心库只支持到 8、另一个只支持 17 的尴尬局面第三团队里不同人的开发环境要能统一不能有人用 8、有人用 11、有人用 17最后编译出来的东西行为不一致。JDK 11 在这三点上表现都很均衡所以它成了很多项目的“最大公约数”。从语言层面看JDK 11 相比 JDK 8 增加了不少实用东西。比如var局部变量类型推断写代码时不用再反复写冗长的类型名比如HttpClient标准化做 HTTP 请求不用再依赖第三方库比如单文件源码直接运行写个小工具脚本不用先编译再执行。这些特性单独看都不算惊天动地但组合在一起日常开发效率确实能提升一截。从工具链角度看JDK 11 对容器化部署的支持也比 8 好很多。JDK 8 时代容器里跑 Java 应用经常遇到内存和 CPU 识别不准的问题需要额外加参数去修正。JDK 11 在这方面做了改进容器感知能力更强配合合理的 JVM 参数资源利用率会更好。这也是为什么很多云原生项目在选基础镜像时会优先考虑 JDK 11 而不是 8。当然JDK 11 也不是没有坑。比如它移除了 Java EE 和 CORBA 相关的模块一些老项目如果直接依赖javax.xml.bind这类包升级到 11 之后就会报ClassNotFoundException。再比如一些老版本的构建工具、代码生成工具、字节码增强工具对 JDK 11 的支持并不完善需要升级到较新的版本才能正常工作。这些问题在升级前如果没排查清楚很容易在编译或启动阶段卡住。所以这篇内容不是单纯告诉你“去哪里下载 JDK 11”而是想从实际使用的角度把 JDK 11 的获取、安装、环境配置、多版本共存、常见问题排查这一整套流程讲清楚。无论你是刚接触 Java 的新手还是需要给团队统一开发环境的老手都能从中找到可以直接参考的操作步骤和避坑经验。2. JDK 11 下载渠道与版本选择2.1 官方渠道与常见发行版对比JDK 11 的下载渠道其实不止一个。很多人第一反应是去 Oracle 官网找但 Oracle JDK 从某个版本开始商用场景需要留意授权问题。对于个人学习、开发测试或者不想处理授权问题的团队更常见的选择是使用开源发行版。目前市面上主流的 JDK 11 发行版有这么几类Oracle 官方构建、Eclipse Temurin、Amazon Corretto、Azul Zulu、Microsoft Build of OpenJDK、阿里巴巴 Dragonwell 等。这些发行版都基于 OpenJDK 源码构建核心功能一致区别主要在于维护策略、更新频率、附加工具和授权条款。发行版维护方授权特点适用场景Oracle JDK 11Oracle商用需关注授权条款个人学习、已获授权的商用Eclipse TemurinEclipse 基金会开源免费通用开发、生产部署Amazon CorrettoAmazon开源免费AWS 环境、通用场景Azul ZuluAzul开源免费嵌入式、桌面、服务端Microsoft BuildMicrosoft开源免费Azure 环境、通用场景Dragonwell阿里巴巴开源免费国内云环境、大规模服务我自己的习惯是本地开发用 Eclipse Temurin因为它的更新节奏稳定安装包干净和主流 IDE 配合没什么问题如果项目部署在特定云平台上就优先选对应厂商的发行版省得在基础镜像和 JDK 兼容性上折腾。注意无论选哪个发行版都要确认它提供的是完整 JDK 而不是 JRE。JDK 包含编译器和调试工具JRE 只有运行环境。做开发必须用 JDK。2.2 版本号里的门道11.0.x 怎么选JDK 11 的版本号格式是11.0.xy其中x是补丁版本号y是构建号。比如11.0.208表示第 20 个补丁版本第 8 次构建。补丁版本会包含安全修复和 bug 修复所以原则上应该选最新的补丁版本。但实际操作中并不是越新越好。有些项目因为依赖了特定版本的字节码处理库升级到最新的 JDK 11 补丁版后反而会出现兼容性问题。这种情况虽然不多但一旦遇到就很头疼。我的建议是新项目直接用最新补丁版老项目升级时先查一下核心依赖库的官方文档看看有没有标注推荐的 JDK 补丁版本范围。另外如果你在 Windows 上开发下载时要注意选对安装包类型。通常有.exe安装版和.zip免安装版两种。安装版会自动配置一部分环境适合新手免安装版解压即用适合需要多版本共存或者不想动系统目录的情况。我一般推荐用免安装版因为控制权完全在自己手里卸载就是删文件夹不会在系统里留一堆注册表项。2.3 下载前的环境确认在点下载按钮之前先花一分钟确认几件事你的操作系统是 Windows、macOS 还是 Linux系统架构是 x64、aarch64 还是别的磁盘上有没有足够的空间。JDK 11 安装后大概占 300MB 到 500MB加上后续的依赖缓存和项目文件建议至少留 2GB 以上。如果是 Linux 环境还要确认是 glibc 还是 musl。大多数发行版用的是 glibc但 Alpine Linux 用的是 musl需要专门下载对应版本。这个点很容易被忽略下载了 glibc 版本在 Alpine 上跑会直接报找不到动态链接库。3. Windows 环境下 JDK 11 安装与环境变量配置3.1 安装过程与目录选择Windows 下安装 JDK 11如果用的是.exe安装包双击之后基本一路下一步就行。但有两个地方值得留意一是安装路径默认会放在C:\Program Files\Java\jdk-11.0.x下面路径里有空格。有些老工具对带空格的路径支持不好所以我会改成C:\Java\jdk-11这种没有空格的短路径。二是安装内容安装器会问你要不要装 JRE、要不要装源码、要不要装公共 JRE。做开发的话JDK 本身就够了公共 JRE 可以不装避免系统里出现多个 Java 运行时互相干扰。如果用的是.zip免安装版解压到你喜欢的目录比如D:\dev\jdk-11然后手动配置环境变量。这种方式更干净也方便以后同时放多个 JDK 版本。3.2 环境变量配置的完整步骤环境变量配置是新手最容易卡住的地方。网上教程很多但有些步骤已经过时了照着做反而会出问题。我按自己的操作习惯把步骤拆解一下。第一步打开系统环境变量设置。在 Windows 搜索框里输入“环境变量”选择“编辑系统环境变量”然后点“环境变量”按钮。第二步新建JAVA_HOME变量。在“系统变量”区域点“新建”变量名填JAVA_HOME变量值填 JDK 的安装目录比如C:\Java\jdk-11。注意不要带\bin也不要带结尾的反斜杠。第三步编辑Path变量。找到系统变量里的Path点“编辑”然后新建一条%JAVA_HOME%\bin。把它移到列表靠上的位置避免被其他 Java 路径覆盖。第四步可选地设置CLASSPATH。现代 Java 项目基本不需要手动配CLASSPATH构建工具和启动脚本会自己处理。如果非要配就设成.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar但我不推荐这么做容易引起类加载冲突。配置完成后打开一个新的命令提示符窗口输入java -version和javac -version。如果两个命令都能正确输出版本号并且版本号一致说明配置成功。如果java能用但javac不能用通常是Path里只加了 JRE 的路径没加 JDK 的bin目录。提示修改环境变量后一定要新开命令行窗口再测试。已经打开的窗口不会自动加载新的环境变量这是很多人以为配置失败的原因。3.3 多版本 JDK 共存的切换技巧开发机上同时装 JDK 8、11、17 是很常见的事。如果每次切换都要改环境变量效率太低。我的做法是把每个 JDK 的安装路径都记下来然后写几个简单的批处理脚本比如use-jdk11.bat、use-jdk8.bat内容就是临时设置当前窗口的JAVA_HOME和Path。echo off set JAVA_HOMEC:\Java\jdk-11 set Path%JAVA_HOME%\bin;%Path% echo JDK 11 activated. java -version这样在需要切换版本时运行一下对应脚本就行不影响系统全局配置。IDE 里也可以单独指定 JDK比如 IntelliJ IDEA 可以在项目结构里为每个项目设置不同的 SDK不需要依赖系统环境变量。4. Linux 与 macOS 下的安装方式4.1 Linux 包管理器安装与手动安装Linux 下安装 JDK 11最省事的方式是用包管理器。比如 Ubuntu/Debian 系可以apt install openjdk-11-jdkCentOS/RHEL 系可以yum install java-11-openjdk-devel。包管理器会自动处理依赖和环境变量安装完直接就能用。但包管理器安装的版本可能不是最新的补丁版而且安装路径比较深不太方便手动管理。如果你需要精确控制版本或者要在同一台机器上放多个 JDK手动安装更合适。下载对应的.tar.gz包解压到/opt/java/jdk-11这类目录然后在~/.bashrc或~/.zshrc里配置环境变量。export JAVA_HOME/opt/java/jdk-11 export PATH$JAVA_HOME/bin:$PATH改完之后执行source ~/.bashrc让配置生效再用java -version验证。4.2 macOS 下的安装与路径确认macOS 下可以用 Homebrew 安装命令是brew install openjdk11。不过 Homebrew 安装的 JDK 默认不会链接到系统路径需要手动做一下软链接或者把JAVA_HOME指向 Homebrew 的安装目录。另一种方式是从发行版官网下载.tar.gz包解压到/Library/Java/JavaVirtualMachines/下面。这个目录是 macOS 识别 JDK 的标准位置放进去之后系统自带的java_home工具就能找到它。/usr/libexec/java_home -V这个命令会列出系统里所有已安装的 JDK。你可以用/usr/libexec/java_home -v 11来获取 JDK 11 的路径然后在脚本里动态设置JAVA_HOME。macOS 上还有一个容易踩的坑系统可能自带了一个旧版本的 Java 运行时。如果你在终端里输入java -version看到的版本不对先用which java看看实际调用的是哪个路径下的 Java再决定是调整PATH顺序还是做软链接。5. 安装后的验证与基础配置检查5.1 验证 JDK 是否正常工作安装完 JDK 11 之后不要急着写代码先做几个基础验证。第一个是java -version确认输出里有11.0.x字样。第二个是javac -version确认编译器可用。第三个是写一个最简单的 Java 文件编译并运行一下。public class Hello { public static void main(String[] args) { System.out.println(JDK 11 ready: System.getProperty(java.version)); } }保存为Hello.java然后执行javac Hello.java和java Hello。如果能看到版本号输出说明 JDK 的编译和运行链路都是通的。5.2 关键系统属性查看有时候版本号对了但运行行为不对可能是因为 JDK 的安装目录、扩展目录或者安全配置有问题。可以用下面这个命令查看关键系统属性java -XshowSettings:properties -version它会输出java.home、java.class.path、java.library.path等信息。重点看java.home是不是指向你期望的 JDK 目录。如果指向了别的版本说明环境变量或者PATH顺序有问题。5.3 构建工具与 IDE 的 JDK 配置JDK 装好了不代表项目就能顺利编译。Maven、Gradle、IDE 都有各自的 JDK 配置。Maven 默认使用JAVA_HOME指向的 JDK但也可以在settings.xml里指定。Gradle 可以在gradle.properties里设置org.gradle.java.home。IDE 则通常在项目设置或全局设置里单独指定 SDK。我遇到过好几次“命令行编译通过、IDE 里报错”的情况最后发现是 IDE 用的 JDK 和命令行不是同一个。所以装完 JDK 后花几分钟把 IDE 和构建工具的 JDK 配置都检查一遍能省掉很多莫名其妙的排查时间。6. 常见问题与排查技巧实录6.1 环境变量配置失败怎么查环境变量配置失败的表现有很多种java命令找不到、javac命令找不到、版本号不对、能编译不能运行。排查思路其实很固定先确认JAVA_HOME的值对不对再确认Path里有没有%JAVA_HOME%\bin最后确认命令行窗口是不是新开的。如果JAVA_HOME对了但java还是找不到可能是Path里有其他 Java 路径排在前面。把%JAVA_HOME%\bin移到最上面通常能解决。如果java能用但javac不能用检查一下JAVA_HOME是不是指向了 JRE 而不是 JDK。还有一个隐蔽的问题Windows 环境变量有“用户变量”和“系统变量”之分。如果你在用户变量里改了Path但系统变量里也有 Java 路径最终生效的可能是系统变量。所以改的时候要两边都看一眼。6.2 版本冲突与“找不到 JDK”的典型场景“找不到 JDK”这个报错在不同工具里含义不一样。Maven 说找不到 JDK通常是JAVA_HOME没设或者设错了。Gradle 说找不到 JDK可能是org.gradle.java.home指向了一个不存在的路径。IDE 说找不到 JDK可能是 SDK 配置被删了或者路径变了。还有一种情况是系统里装了多个 JDK但某个工具硬编码了某个路径。比如有些老版本的构建脚本会直接写C:\Program Files\Java\jdk1.8.0_xxx你升级到 JDK 11 之后这个路径不存在了脚本就报错。这种问题只能去改脚本或者做目录软链接。6.3 升级到 JDK 11 后常见的兼容性问题从 JDK 8 升级到 11最常见的兼容性问题有三类。第一类是 Java EE 模块移除导致的ClassNotFoundException比如javax.xml.bind.JAXBException。解决办法是手动引入对应的依赖比如jakarta.xml.bind-api和jaxb-impl。第二类是字节码处理库不兼容比如老版本的 ASM、CGLIB、Javassist需要升级到支持 JDK 11 的版本。第三类是 JVM 参数变化比如-XX:UseConcMarkSweepGC在 JDK 11 里虽然还能用但已经被标记为废弃未来版本会移除建议换成 G1 或 ZGC。问题现象可能原因解决方向启动报 ClassNotFoundExceptionJava EE 模块被移除引入对应 Jakarta 依赖编译报字节码版本错误依赖库不支持 JDK 11升级 ASM/CGLIB 等库GC 日志格式变化JVM 日志参数调整使用 -Xlog 系列参数容器内内存识别不准未开启容器支持设置 -XX:UseContainerSupport日期时间格式化异常旧版日期库兼容问题升级依赖或改用 java.time6.4 多版本共存时的路径优先级问题多版本共存时最容易出问题的地方是路径优先级。比如系统Path里同时有 JDK 8 和 JDK 11 的bin目录哪个在前面就用哪个。如果你用脚本临时改了JAVA_HOME但Path里还是旧的路径那java命令用的还是旧版本。我的做法是系统Path里只放一个“默认 JDK”的路径其他版本通过脚本临时切换。IDE 和构建工具则各自独立配置不依赖系统Path。这样虽然多花几分钟配置但能避免很多版本混乱的问题。7. 给不同阶段读者的实操建议如果你是完全新手第一次装 JDK我的建议是Windows 用免安装版解压到短路径手动配JAVA_HOME和Path然后写一个 Hello World 跑通。不要一上来就折腾多版本共存先把单版本跑顺。如果你是有经验的开发者需要给团队统一环境建议把 JDK 安装包和配置脚本一起放进内部文档明确版本号、安装路径、环境变量值。最好再提供一个验证脚本新同事装完跑一下能自动检查java、javac、JAVA_HOME是否正确。如果你在维护老项目准备从 JDK 8 升级到 11建议先在本地或测试环境做一次完整构建和启动测试重点检查 Java EE 依赖、字节码库版本、JVM 参数。确认没问题后再推到 CI 和线上。最后分享一个我自己的小习惯每次装完新 JDK都会在JAVA_HOME目录下放一个version.txt写上安装日期、版本号、下载来源。过几个月再回头看能快速回忆起这台机器上装的是什么版本省得再去命令行里查。这个习惯看起来不起眼但在多机器、多版本的环境里能省不少事。

相关新闻

SQL Server + Qt 学生管理系统实战:建模、连接与避坑指南

SQL Server + Qt 学生管理系统实战:建模、连接与避坑指南

简介:基于SQL Server与Qt联合开发的学生管理系统以zip压缩包形式提供,面向计算机相关专业在校学生、教师及企业开发者,适用于课程设计、毕业设计或初学Qt与数据库编程的实践参考。项目代码已通过运行测试,功能可用,可在…

2026/10/20 18:53:57 阅读更多 →
Claude Code 中文命令工作流:10 个自定义命令提升 AI 编程效率

Claude Code 中文命令工作流:10 个自定义命令提升 AI 编程效率

1. 为什么我要折腾这套中文命令工作流用 Claude Code 做开发的人大概都有个共同感受:它本身能力很强,但默认的交互方式对中文用户并不算友好。每次开新会话,都要重新交代一遍项目背景、代码规范、提交习惯;想让它按固定套路做代码…

2026/10/20 19:39:20 阅读更多 →
代码重构实战指南:从坏味道识别到小步重构的工程实践

代码重构实战指南:从坏味道识别到小步重构的工程实践

接手过别人留的烂摊子吗?就是那种一个函数两百行、变量名全是 a1、a2、tmp,光读懂就要半天,改一行边上就崩三处的代码。我最早真正开始系统学习代码重构,就是因为被这种代码反复折磨。后来才意识到,代码重构不是洁癖发…

2026/10/20 19:39:18 阅读更多 →

最新新闻

MSA存储入门指南:从SAN协议到选型场景的全面解析

MSA存储入门指南:从SAN协议到选型场景的全面解析

简介:这份文档面向备考H3C认证工程师-MSA存储(H3CNE-MSA)的技术人员与H3C代理服务工程师,聚焦MSA存储设备基础配置与维护知识,帮助读者在有限时间内系统梳理考点、检验掌握程度。资源为1个docx文件,压缩包约…

2026/10/20 19:39:14 阅读更多 →
C语言大作业高分实践:工程结构、内存安全与评分对齐

C语言大作业高分实践:工程结构、内存安全与评分对齐

简介:这是一份面向高校C语言初学者与课程设计学生的高分期末大作业实战项目,完整实现了一个具备学生端与管理员双角色的学生成绩管理系统。资源包含可直接编译运行的C/Qt源码(含18个.h头文件与18个.cpp实现文件)、图形界面.ui文件…

2026/10/20 19:39:14 阅读更多 →
Redis Java客户端选型与实战:Jedis、Lettuce、Redisson对比

Redis Java客户端选型与实战:Jedis、Lettuce、Redisson对比

1. 先搞清楚需求,再选客户端写Java应用连Redis,第一步不是去翻依赖、复制代码,而是先想清楚:你的业务到底需要Redis做什么,以及你的应用是什么形态。这话可能听起来像废话,但我在实际项目里见过太多人一上来…

2026/10/20 19:39:14 阅读更多 →
轻量级AI助手ZeroClaw实战:有限算力下的部署与Agent落地

轻量级AI助手ZeroClaw实战:有限算力下的部署与Agent落地

1. 项目定位:为什么轻量级AI助手反而更实用去年年底我拿到一台配置平平的旧工作站,8GB内存、无独显、CPU还是几年前的型号,跑几个容器就喘。当时手头正好有个工具自动化需求:定时抓取内部系统数据,做简单清洗&#xff…

2026/10/20 19:39:14 阅读更多 →
单相桥式半控整流电路原理与Matlab/Simulink仿真建模分析

单相桥式半控整流电路原理与Matlab/Simulink仿真建模分析

单相桥式半控整流电路,这个名字在电力电子课程里出现的频率极高。很多电气工程专业的朋友第一次接触晶闸管整流,就是从它开始的。最近正好有人在问Matlab仿真的思路,我把自己做这个仿真报告的全过程梳理了一遍,从拓扑结构分析到模…

2026/10/20 19:39:14 阅读更多 →
Java动漫链接生成器:批量整理番剧资源链接的轻量工具

Java动漫链接生成器:批量整理番剧资源链接的轻量工具

简介:这是一款面向动漫资源采集与二次元工具开发者的轻量级命令行程序,基于Java实现,可根据指定标签批量生成动漫图片链接,适合需要批量获取Danbooru图源、做数据采集或练手Java命令行项目的开发者。资源包共17个文件,…

2026/10/20 19:38:12 阅读更多 →

日新闻

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 阅读更多 →