解决Gradle项目JDK版本冲突:从原理到实战配置指南
1. 问题缘起当gradlew脚本与本地JDK“闹别扭”如果你在终端或命令行里敲下./gradlew build或./gradlew --version却迎面撞上一行刺眼的错误信息比如Could not determine java version from xx或者The supplied javaHome seems to be invalid甚至更直白地告诉你it is configured to use JDK 0, but IDE supports compilation using JDK 7 and...那么恭喜你你正踩在Gradle项目构建中最常见的一个坑上gradlew脚本与本地JDK版本不匹配。这个问题的本质是Gradle包装器Gradle Wrapper也就是那个gradlew或gradlew.bat文件与你的本地Java开发工具包JDK版本之间的“沟通障碍”。gradlew脚本本身并不包含完整的Gradle它更像是一个智能启动器。当你第一次在项目目录下运行它时它会根据项目中的gradle/wrapper/gradle-wrapper.properties文件去下载指定版本的Gradle发行版。然而Gradle发行版的运行和项目的编译都需要一个特定版本的JDK。如果脚本期望的JDK版本与你系统环境变量JAVA_HOME指向的版本不一致冲突就发生了。为什么这个问题如此普遍在现代开发中一个开发者可能同时维护多个项目有的基于古老的Java 8有的使用较新的Java 11或17还有的已经跑在了最新的LTS版本Java 21上。你的机器上可能安装了多个JDK而系统默认的JAVA_HOME很可能指向其中一个。当你切换项目时如果每个项目对JDK的要求不同手动去修改全局环境变量不仅繁琐而且极易出错。gradlew脚本报错正是在提醒你“嘿老兄这个项目需要特定版本的Java才能正常工作你当前提供的版本不对路。”更让人头疼的是这个错误信息有时并不清晰。它可能只告诉你“无法确定Java版本”让你误以为是Gradle本身安装有问题从而开始盲目地重新下载Gradle发行包比如搜索“将gradle-8.9-all.zip放到c盘的.gradle对应目录下”结果折腾半天发现毫无作用。问题的根源不在Gradle发行包而在于启动Gradle的Java环境。理解这一点是解决所有相关问题的第一步。2. 核心原理Gradle Wrapper、JDK与IDE的三方博弈要彻底解决版本冲突我们需要先理清Gradle项目构建中的三个关键角色及其关系Gradle Wrapper、JDK和集成开发环境IDE。它们各自独立又相互依赖共同决定了你的项目能否成功构建。Gradle Wrapper (gradlew)这是项目的一部分被提交到版本控制系统如Git中。它的核心文件是gradle/wrapper/gradle-wrapper.properties里面有一行关键配置distributionUrl。这个URL指定了该项目构建所需的确切Gradle发行版例如https\://services.gradle.org/distributions/gradle-8.9-all.zip。当你运行./gradlew时它会检查本地缓存默认在~/.gradle/wrapper/dists/目录下是否有这个指定版本的Gradle如果没有则下载并解压。但请注意这个Gradle发行版只是一个“构建工具包”它自身运行也需要一个JVMJava虚拟机。这个JVM从哪里来就是从你系统环境或特定配置中指定的JDK。JDK (Java Development Kit)这是编译和运行Java代码包括Gradle本身的基石。Gradle作为一个Java应用程序必须在某个JDK上启动。这个启动JDK的版本直接影响了Gradle能使用的语言特性、API以及它能为项目编译选择的工具链。如果Gradle 8.x需要至少JDK 11来运行而你用JDK 8去启动它那么Gradle自身就可能无法正常初始化更别提构建项目了。集成开发环境 (IDE如IntelliJ IDEA)IDE通常有自己的JDK配置体系。当你用IDEA打开一个Gradle项目时它会做两件事1. 读取项目配置尝试理解项目所需的JDK版本2. 使用它自己配置的JDK来运行Gradle任务或者委托给gradlew。这里就可能出现“三方版本不一致”的经典困境项目配置要求JDK 17你的系统JAVA_HOME是JDK 8而IDEA里为这个项目设置的SDK是JDK 11。此时无论通过命令行执行gradlew还是在IDEA中点击“运行”都可能得到令人困惑的错误。它们之间的关系可以这样概括gradlew脚本负责拉取和启动正确版本的GradleGradle进程运行在一个特定的JDK上Gradle再根据项目配置去调用相应版本的Java编译器javac来编译你的项目源码。后两步用到的JDK可以是同一个也可以是不同的通过Gradle的“工具链”功能实现。而我们遇到的“版本不匹配”错误绝大多数发生在第一步为Gradle进程本身寻找启动JDK时。3. 诊断先行如何精准定位版本冲突点在盲目修改配置之前准确的诊断能让你事半功倍。我们需要一套排查组合拳来锁定问题究竟出在哪个环节。第一步检查系统全局Java环境。打开终端或CMD/PowerShell依次执行以下命令java -version javac -version echo %JAVA_HOME% # Windows CMD echo $JAVA_HOME # Linux/macOS Bashjava -version告诉你当前默认用于运行Java程序的JRE版本javac -version告诉你当前默认的Java编译器版本通常来自JDK。理想情况下这两者应该来自同一个JDK安装且版本一致。JAVA_HOME环境变量应该指向一个完整的JDK安装目录例如C:\Program Files\Java\jdk-17或/usr/lib/jvm/java-17-openjdk。如果这些命令的输出版本与你项目期望的版本比如项目需要Java 17相差甚远那么这就是一个明显的冲突信号。第二步检查Gradle Wrapper的配置。查看项目根目录下的gradle/wrapper/gradle-wrapper.properties文件。关注其中是否包含了JDK版本要求。虽然这个文件主要定义Gradle版本但高版本的Gradle通常对运行它的JDK有最低要求。例如Gradle 8.9 要求运行在 JDK 11 或更高版本上。你可以对照 Gradle官方兼容性矩阵 来确认。第三步检查项目本身的Gradle构建脚本。查看build.gradle或build.gradle.kts文件寻找关于Java版本的配置。通常会在plugins块之后看到类似这样的配置java { toolchain { languageVersion JavaLanguageVersion.of(17) } }或者旧式的sourceCompatibility 17 targetCompatibility 17这里的配置指明了编译项目源代码所需要的JDK版本。请注意这不一定是运行Gradle本身所需的JDK版本但它是Gradle构建任务的目标。第四步在项目目录下尝试用gradlew打印诊断信息。在终端中进入你的项目根目录运行./gradlew --version这个命令会做几件事首先它会使用当前环境系统JAVA_HOME或特定配置启动一个JVM来运行gradlew脚本然后这个脚本会去定位或下载指定的Gradle发行版最后启动的Gradle会报告它自身的版本、运行时的JVM信息JVM版本、供应商以及它所使用的Gradle Daemon如果有的JVM信息。仔细看输出------------------------------------------------------------ Gradle 8.9 ------------------------------------------------------------ Build time: 2024-08-22 08:34:45 UTC Revision: f6ce14e7d3d0c5c0a4153e0b3e8c2c4a2a0c1b2a Kotlin: 1.9.24 Groovy: 3.0.19 Ant: Apache Ant(TM) version 1.10.13 compiled on January 4 2023 JVM: 17.0.11 (Eclipse Adoptium 17.0.119) OS: Windows 11 10.0 amd64这里JVM: 17.0.11就是当前运行Gradle的JDK版本。如果这里显示的版本与你项目要求的编译版本比如sourceCompatibility 11不一致甚至因为版本过低导致命令执行失败那么问题就出在这里。通过以上四步你基本能画出一张清晰的“版本地图”系统环境是什么、Gradle需要什么、项目编译需要什么。当这三者出现矛盾时就是我们需要动用配置手段进行干预的时候了。4. 解决方案一在项目内配置专属JDK推荐最干净、最可复现的解决方案是在Gradle项目内部直接指定运行它所需的JDK。这样无论开发者电脑上的全局环境变量如何设置只要项目被克隆下来就能使用一致的JDK版本进行构建。这主要通过两个文件实现gradle.properties和gradlew脚本本身的启动参数。方法A使用gradle.properties文件跨平台首选在项目根目录下与build.gradle同级创建或编辑gradle.properties文件。这个文件用于配置Gradle构建的全局属性其中就包括JVM参数。我们可以通过设置org.gradle.java.home属性来指定JDK路径。# 指定用于运行Gradle的JDK安装目录 org.gradle.java.home/path/to/your/jdk例如在Windows上可能是org.gradle.java.homeC:\\Program Files\\Java\\jdk-17在Linux/macOS上可能是org.gradle.java.home/usr/lib/jvm/java-17-openjdk-amd64注意路径中不要包含bin目录。org.gradle.java.home应该指向JDK的根目录即包含bin、jre、lib等子目录的文件夹。这个配置的优先级高于系统环境变量JAVA_HOME。当你在项目目录下执行./gradlew时Gradle Wrapper会读取这个属性并使用指定的JDK来启动Gradle进程。这是最推荐的方式因为它将配置固化在项目中与代码一起版本化确保了团队所有成员以及CI/CD服务器环境的一致性。方法B修改gradlew脚本不推荐但需了解直接编辑gradlewUnix/Linux/macOS或gradlew.batWindows脚本文件。在这些脚本的开头部分你可以找到设置JVM参数的逻辑。对于gradlew在靠近文件顶部的位置找到类似DEFAULT_JVM_OPTS的定义你可以在此处或之后添加-Dorg.gradle.java.home参数但更常见的做法是在执行java命令时直接设置JAVA_HOME。不过直接修改包装器脚本是不推荐的因为gradlew脚本本身是Gradle Wrapper自动生成和管理的你的修改可能在Wrapper升级时被覆盖。而且将绝对路径硬编码在脚本中会破坏项目的可移植性。方法C通过环境变量临时指定适用于快速测试如果你不想修改项目文件或者只是想临时测试某个JDK版本是否可行可以在运行gradlew命令前在终端中临时设置JAVA_HOME环境变量。Windows (CMD):set JAVA_HOMEC:\Program Files\Java\jdk-17 .\gradlew.bat buildWindows (PowerShell):$env:JAVA_HOMEC:\Program Files\Java\jdk-17 .\gradlew.bat buildLinux/macOS (Bash):export JAVA_HOME/usr/lib/jvm/java-17-openjdk-amd64 ./gradlew build这种方式只对当前终端会话生效关闭终端后设置即失效。它适合快速验证但不是长期的解决方案。5. 解决方案二使用JDK工具链实现编译隔离上面提到的方法解决了“运行Gradle的JDK”问题。但Gradle还有一个更强大的功能工具链Toolchains。工具链允许你将“运行Gradle的JDK”和“编译项目代码的JDK”解耦。这意味着你完全可以用JDK 17来运行Gradle因为Gradle 8.9需要但同时指定用JDK 11来编译你的项目源码因为项目依赖库只兼容Java 11。这对于维护遗留项目或在多版本环境中构建非常有用。配置工具链需要在build.gradle文件中进行plugins { id java } java { toolchain { languageVersion JavaLanguageVersion.of(11) // 指定编译所需的Java版本 // vendor JvmVendorSpec.ADOPTIUM // 可选指定JVM供应商 // implementation JvmImplementation.J9 // 可选指定JVM实现如J9 } }配置了工具链后Gradle会变得非常“智能”自动探测Gradle会在你的系统上默认搜索JAVA_HOME和标准安装路径自动寻找符合指定版本这里是11的JDK。自动下载如果本地没有找到符合条件的JDKGradle 6.7及以上版本可以自动下载所需的JDK这是通过配置仓库实现的默认会从Adoptium等仓库下载。隔离使用Gradle会使用这个找到或下载的JDK来执行所有的编译、测试和Javadoc生成任务而运行Gradle守护进程和核心引擎的JVM保持不变。你可以通过以下命令验证工具链的配置和发现情况./gradlew -q javaToolchains这个命令会列出所有已配置和已发现的Java工具链。工具链 vsorg.gradle.java.homeorg.gradle.java.home指定了运行Gradle守护进程和核心引擎的JVM。影响Gradle自身的性能、稳定性以及与插件尤其是那些需要运行在Gradle进程内的插件的兼容性。工具链指定了用于编译、测试、运行应用程序的JDK。它决定了你的源代码能用哪些语言特性编译出的字节码版本以及运行测试时的环境。在大多数现代项目中特别是使用较新Gradle版本7.0时推荐使用工具链来管理项目编译JDK因为它更声明式、更智能并且支持自动下载。而org.gradle.java.home则用于解决Gradle自身启动的兼容性问题通常只在Gradle版本与系统JDK版本不匹配时才需要显式设置。6. 解决方案三在IDE中一劳永逸地配置对于日常开发我们大部分时间都在IDE如IntelliJ IDEA中工作。在IDE中正确配置JDK可以避免命令行构建成功而IDE内却报错的尴尬局面。这里以IntelliJ IDEA为例说明如何配置。第一步确保JDK已被IDEA识别。打开File - Project Structure (CtrlAltShiftS)-Platform Settings - SDKs。在这里你应该能看到你机器上安装的所有JDK。如果没有点击“”号添加选择JDK的安装目录。请确保你项目所需的JDK版本存在于这个列表中。第二步为项目指定SDK和Gradle JVM。仍然在Project Structure对话框中切换到Project Settings - Project。Project SDK这里选择你希望IDEA用于项目索引、代码补全、内置运行/调试的JDK版本。这通常应该与你的项目编译目标版本一致。Project language level通常设置为与SDK版本对应的语言级别IDEA会自动推断。接下来更重要的是Gradle的配置。打开File - Settings (CtrlAltS)-Build, Execution, Deployment - Build Tools - Gradle。Gradle JVM这是最关键的设置。它指定了IDEA在运行Gradle任务比如点击Gradle面板中的按钮时所使用的JDK。强烈建议将其设置为与你在gradle.properties中配置的org.gradle.java.home相同的JDK或者至少是满足Gradle运行最低要求的版本。你可以从下拉框中选择一个已注册的JDK。使用Gradle来自选择“Wrapper”这样IDEA就会使用项目自带的gradlew脚本确保Gradle版本一致。IDEA配置的优先级当你在IDEA中运行Gradle任务时其执行顺序可以理解为IDEA使用Settings - Gradle - Gradle JVM指定的JDK来启动一个JVM。这个JVM执行项目目录下的gradlew脚本。gradlew脚本读取gradle.properties如果存在org.gradle.java.home设置则以此为准否则使用上一步JVM的环境。最终Gradle进程使用步骤3确定的JDK运行并根据项目构建脚本工具链配置选择用于编译的JDK。因此为了最大程度避免冲突最佳实践是保持Gradle JVM设置、gradle.properties中的org.gradle.java.home如果需要设置、以及项目工具链配置或sourceCompatibility之间的协调一致。7. 实战避坑指南与进阶技巧掌握了基本配置方法后在实际操作中还有一些细节和“坑”需要注意这些往往是文档中不会明确写出的经验之谈。避坑点1路径中的空格与特殊字符。在gradle.properties中设置org.gradle.java.home时如果JDK安装路径包含空格例如C:\Program Files\Java\...在Windows上通常需要转义或使用短路径。虽然现代Gradle和Shell处理能力已增强但遇到问题时可以尝试使用双引号包裹路径在某些环境下有效。使用Windows的短路径名dir /x查看通常类似PROGRA~1。最根本的解决方式将JDK安装到没有空格和中文的路径下例如C:\Java\jdk-17。这是一个从源头避免无数奇怪问题的好习惯。避坑点2JAVA_HOME指向JRE而非JDK。JAVA_HOME必须指向JDK的根目录而不是JRE。JDK包含开发工具如javac而JRE只有运行环境。Gradle构建需要编译器。如果你在配置后遇到“找不到编译器”或“无效的JDK”错误请检查路径是否正确指向了JDK目录目录下应有bin、lib、jmods等bin目录下应有javac.exe。避坑点3Gradle Daemon的缓存与残留。Gradle会启动一个守护进程Daemon来加速后续构建。如果你更改了JDK配置比如org.gradle.java.home但构建仍然使用旧的JDK可能是因为旧的Daemon还在运行。此时可以停止所有Daemon./gradlew --stop然后重新运行构建命令新的Daemon会使用新的配置启动。进阶技巧1使用.sdkmanrc或.tool-versions管理多版本macOS/Linux。如果你在Unix-like系统上开发并且经常切换不同JDK版本的项目可以使用版本管理工具如SDKMAN!。在项目根目录创建一个.sdkmanrc文件# 在项目目录下执行 sdk env init然后编辑生成的.sdkmanrc文件内容为java17.0.11-tem以后进入该项目目录只需执行sdk envSDKMAN!就会自动将Java版本切换到17.0.11。类似地使用asdf工具可以创建.tool-versions文件来管理多版本。这比修改全局环境变量优雅得多。进阶技巧2在CI/CD流水线中配置JDK。在Jenkins、GitHub Actions、GitLab CI等持续集成环境中确保JDK版本一致更为关键。以GitHub Actions为例你可以在工作流文件中使用actions/setup-javaaction来精确指定JDKjobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - name: Set up JDK 17 uses: actions/setup-javav4 with: distribution: temurin # 发行版如 temurin, microsoft, zulu java-version: 17 - name: Build with Gradle run: ./gradlew build这样无论构建服务器上预装了哪些JDK你的构建都会在一个纯净的、指定版本的环境中运行。进阶技巧3处理网络问题导致的Gradle发行版下载失败。有时错误并非来自JDK而是gradlew在首次运行时无法从distributionUrl下载Gradle发行版例如gradle-8.9-all.zip。你可以手动下载该zip文件并将其放置到Gradle的本地包装器分发缓存目录中。缓存目录通常位于Windows:%USERPROFILE%\.gradle\wrapper\dists\Linux/macOS:~/.gradle/wrapper/dists/在该目录下你会看到以Gradle版本和哈希值命名的文件夹。将下载的zip文件放入对应的文件夹内注意不要解压然后再次运行./gradlew它会跳过下载直接使用本地文件。这是一种解决网络环境受限问题的有效方法。

相关新闻

Dump文件分析实战:从崩溃现场到内存泄漏排查的终极指南

Dump文件分析实战:从崩溃现场到内存泄漏排查的终极指南

1. 从一次线上崩溃说起:为什么Dump文件是程序员的“后悔药”那天晚上,我正在家里准备休息,手机突然开始疯狂震动。运维的告警群像炸了锅一样,核心服务的CPU使用率在几分钟内从20%飙到100%,紧接着就是一连串的“服务不可…

2026/8/13 5:19:36 阅读更多 →
从E-R图到关系模型:数据库设计的核心转换规则与实战

从E-R图到关系模型:数据库设计的核心转换规则与实战

1. 项目概述:从概念到结构的桥梁干了这么多年后端开发,我越来越觉得,一个项目能不能成,很多时候在数据库设计阶段就已经决定了。最近带新人,发现他们最头疼的不是写SQL,也不是调优,而是面对一堆…

2026/8/13 5:18:35 阅读更多 →
NLP 评测平台权限设计:数据脱敏、密钥隔离与预算控制

NLP 评测平台权限设计:数据脱敏、密钥隔离与预算控制

NLP 评测平台权限设计:数据脱敏、密钥隔离与预算控制 评测系统除关注准确率和吞吐量外,还应明确凭据、数据集与执行权限的边界。常见风险包括把凭据写入脚本、共享超出职责范围的访问令牌,或让评测数据在缺少访问控制的环境中被复制。 本文使…

2026/8/13 5:18:35 阅读更多 →

最新新闻

马斯克168亿美元的Terafab造芯计划,折射出AIoT边缘智能的3大演进趋势

马斯克168亿美元的Terafab造芯计划,折射出AIoT边缘智能的3大演进趋势

8月6日,SpaceX宣布与特斯拉首期投入168亿美元,在得克萨斯州建设Terafab芯片制造基地。官方给出的年产能目标是超过1太瓦算力,这是一个极为惊人的数字,在马斯克口径下,当前全球AI算力年产能约20吉瓦,1太瓦约…

2026/8/13 8:58:57 阅读更多 →
谷歌创始人布林紧急接管Gemini团队,但“3.5 Pro已被取消”

谷歌创始人布林紧急接管Gemini团队,但“3.5 Pro已被取消”

谷歌算力分配内耗严重 郑重提示!大伙儿别等Gemini 3.5 Pro了,不然你就是在机场苦等一艘轮船。 今年5月的GoogleI/O,主演讲PPT有这么一张: Gemini 3.5 Pro——Coming next month。 按照原本规划,这款模型应该承担Goog…

2026/8/13 8:58:57 阅读更多 →
PDF补丁丁:开源免费的PDF工具箱,解决书签、OCR、合并拆分等常见难题

PDF补丁丁:开源免费的PDF工具箱,解决书签、OCR、合并拆分等常见难题

1. 项目概述:为什么我们需要一个“补丁丁”?在数字文档的世界里,PDF 几乎成了“标准答案”。从合同、报告到电子书、论文,它无处不在。但就是这个看似完美的格式,在实际工作中却常常给我们带来一堆“小麻烦”&#xff…

2026/8/13 8:58:57 阅读更多 →
Claude Opus 5系统提示词编写与API集成实战指南

Claude Opus 5系统提示词编写与API集成实战指南

这次我们来看一个关于 Claude Opus 5 系统提示词的技术实践。对于深度使用大型语言模型的开发者来说,系统提示词是解锁模型特定能力、引导其行为模式、实现复杂任务的关键“钥匙”。Claude Opus 5 作为 Anthropic 推出的高性能模型,其系统提示词的编写与…

2026/8/13 8:58:57 阅读更多 →
SQL Server 2022安装全攻略:从环境准备到配置优化的避坑指南

SQL Server 2022安装全攻略:从环境准备到配置优化的避坑指南

1. 项目概述:为什么SQL Server安装值得你花时间 如果你正准备搭建一个数据库环境,无论是为了学习开发、部署内部应用,还是进行数据分析,SQL Server大概率是你绕不开的一个选项。作为微软生态下的核心数据库产品,它以其…

2026/8/13 8:58:56 阅读更多 →
Claude Code 扩展点:配置与插件 —— settings.json 全解

Claude Code 扩展点:配置与插件 —— settings.json 全解

前两篇讲了怎么装、怎么用、怎么用 Skills 定制。这篇拆解 Claude Code 的配置体系:settings 三层结构、核心字段、插件机制,以及一个状态栏 HUD 的实战案例。全文基于真实配置,凭据与内部地址已脱敏。1. 配置体系总览 CC 的配置以 JSON 文件…

2026/8/13 8:57:56 阅读更多 →

日新闻

Visual Studio新建项目解决方案为空:系统性排查与修复指南

Visual Studio新建项目解决方案为空:系统性排查与修复指南

1. 问题现象与本质剖析如果你是一位.NET开发者,或者正准备踏入这个领域,那么Visual Studio(后面简称VS)绝对是你绕不开的伙伴。但有时候,这个伙伴会跟你开一个不大不小的玩笑:你满怀期待地点击“创建新项目…

2026/8/13 0:00:09 阅读更多 →
长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

说实话,每次提起“长春建设厅网站”这几个字,我心里都挺有感触的。不是因为它有多高大上,也不是因为那里藏着什么不可告人的秘密,恰恰相反,是因为它太“接地气”了,或者说,它是咱们普通人想要在这个城市好好生活、安稳买房时,必须得翻过的一座“数据山”。很多新朋友第…

2026/8/13 0:00:09 阅读更多 →
Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini 你是否曾为Windows家庭版无法支持多用户远程桌面…

2026/8/13 0:00:09 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/12 1:11:09 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/12 1:11:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/12 1:11:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →