news 2026/8/2 1:25:39

Windows 下 gradlew 不是内部命令?正确运行 Gradle Wrapper 的方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows 下 gradlew 不是内部命令?正确运行 Gradle Wrapper 的方法

gradlew是gradlewrapper的缩写,对gradle的命令进行了包装,比如我们进入到指定Module目录并执行“gradlew assemble”即可完成对当前Module的构建(Windows系统下)。

这种错误,一般是没有配置gradle的环境变量,打开项目里面gradle-wrapper.properties,查看使用的版本

在Androidstudio设置中找到gradle的缓存路径,然后打开wrapper/dists

Windows 下 gradlew 不是内部或外部命令:正确运行 Gradle Wrapper 的方法

问题现象

在 Windows 的 CMD 或 PowerShell 中构建 Android 项目时,执行 gradlew assembleDebug 后出现:

gradlew 不是内部或外部命令,也不是可运行的程序或批处理文件。

这通常不是 Gradle 没有配置环境变量,而是命令执行位置或调用方式不正确。

先理解:gradlew 和 gradle 有什么区别?

gradle 是系统安装的 Gradle 命令,需要配置环境变量。gradlew 是项目自带的 Gradle Wrapper,会根据项目的 gradle/wrapper/gradle-wrapper.properties 自动下载并使用指定版本的 Gradle。

因此,日常构建 Android 项目优先使用 gradlew。它可以保证团队成员和 CI 使用相同的 Gradle 版本,不需要为 gradlew 单独配置 GRADLE_HOME。

正确做法:在项目根目录执行

先进入包含 gradlew.bat、gradlew、settings.gradle 或 settings.gradle.kts 的项目根目录。

PowerShell:

.\gradlew.bat assembleDebug

也可以使用:

.\gradlew assembleDebug

CMD:

gradlew.bat assembleDebug

如果需要构建 Release 包,将 assembleDebug 改成 assembleRelease。

为什么直接输入 gradlew 会失败?

PowerShell 默认不会从当前目录查找可执行文件。即使 gradlew.bat 就在当前目录,也必须使用 .\ 前缀明确指定当前目录。CMD 的行为不同,但显式使用 gradlew.bat 更清晰,也更容易排查。

检查项目是否包含 Wrapper

项目根目录应至少包含以下文件:

  • gradlew
  • gradlew.bat
  • gradle/wrapper/gradle-wrapper.properties

如果这些文件缺失,说明项目没有提交 Wrapper。此时可在已安装 Gradle 的环境中执行 gradle wrapper 生成,再将生成的文件提交到版本控制。

常见排查

1. 在错误目录执行

不要在某个 module 目录内直接执行命令。先返回项目根目录,再运行 Wrapper。

2. 第一次下载依赖失败

Wrapper 首次运行需要下载 Gradle 发行包,同时 Android 构建还会下载依赖。检查网络、代理、镜像源和公司证书配置。

3. Java 版本不匹配

Gradle 与 Android Gradle Plugin 对 JDK 有版本要求。可先执行 java -version,再根据项目配置选择 Android Studio 使用的 JDK。

4. 文件被权限或安全软件拦截

确认 gradlew.bat 未被阻止,项目目录具备读写权限;必要时以普通管理员权限重新打开终端。

验证命令

在项目根目录执行:

.\gradlew.bat --version

若能显示 Gradle、JVM 和操作系统信息,说明 Wrapper 已可正常使用。

总结

遇到 gradlew 找不到时,不要急着配置 Gradle 环境变量。优先确认自己位于项目根目录,并在 PowerShell 中使用 .\gradlew 或 .\gradlew.bat 执行。只有项目缺少 Wrapper 文件时,才需要补充生成 Wrapper 或改用系统安装的 gradle 命令。

找到如下目录

配置为GRADLE_4.4_HOME,然后在path中增加一项%GRADLE_4.4_HOME%\bin,确定退出,gradle环境就配置完成了

验证一下

这里有一个坑, gradlew在项目根目录下才有效,如果进入到module中是无效的

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/2 1:25:35

RAG 语义缓存设计:用 Redis 与向量相似度避免重复 LLM 调用

RAG 语义缓存设计:用 Redis 与向量相似度避免重复 LLM 调用 在做基于 RAG(检索增强生成)的大模型应用时,调用 LLM 的 API 费用和首字延迟(TTFT)是两个绕不开的麻烦。实际在企业知识库或者客服问答里看日志…

作者头像 李华
网站建设 2026/8/2 1:24:34

【单片机毕业设计】基于 STM32 的三路充电桩状态显示智能终端设计 基于 CN-TTS 语音模块的嵌入式充电桩控制系统(017001)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华
网站建设 2026/8/2 1:23:04

第三篇:多源日志关联分析实战:AI辅助攻击链还原与安全事件溯源教程(附关联查询模板)

上一篇讲完单一日志源的降噪和结构化,这一篇讲一个更麻烦的问题:单看一条日志、甚至单看一个数据源,很多攻击你根本发现不了。 真正的攻击链,往往横跨Web日志、主机日志、云审计日志好几个系统,每个系统单独看都平平无奇,拼在一起才是一次完整的入侵。 我经手过一起真实…

作者头像 李华
网站建设 2026/8/2 1:19:41

8英寸USB-C便携显示器:单线扩展屏幕的工程实现与全场景应用指南

1. 项目概述:为什么我们需要一块便携的8英寸USB显示器?几年前,我还在频繁出差,每次背着沉重的笔记本电脑和一堆资料穿梭于各个城市。最头疼的就是在酒店或者客户会议室里,只有一个屏幕处理多任务——左边开着文档&…

作者头像 李华
网站建设 2026/8/2 1:18:00

MonetaMarkets的页面分层会更顺畅吗?

围绕页面分层会更顺畅吗这个角度再看MonetaMarkets,很多细节会比口号式描述更有参考价值。从功能分层角度观察,平台服务把复杂事项拆解得更容易理解,用户自然更容易形成稳定印象。把问题拆开去看,平台在基础服务、解释完整度和提醒…

作者头像 李华
网站建设 2026/8/2 1:17:54

海思 hi3798mv100 机顶盒深度清理记录

海思 hi3798mv100 机顶盒深度清理记录 设备: hi3798mv100 / 4核 ARMv7 / 723MB RAM / 6.4GB eMMC 系统: Ubuntu 20.04.6 LTS (Focal Fossa) / Kernel 4.4.35 日期: 2026-06-30 清理前状态 一台跑着 Ubuntu 的机顶盒,被当作小型服务器使用,堆了各种服务。…

作者头像 李华