You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境下Gradle任务因WSL路径配置问题执行异常

问题原因及解决方案

核心原因

你遇到的问题根源是Gradle调用的bash并非你日常使用的Git Bash,而是WSL(Windows子系统Linux)的bash。两者的路径映射规则完全不同:

  • Git Bash将Windows盘符(如G:)映射为/g格式;
  • WSL则把Windows盘符映射为/mnt/g格式,且WSL的bash无法直接识别Git Bash风格的/g路径,反之亦然。

卸载WSL后,系统找不到默认关联的bash程序,因此抛出了WSL发行版未安装的错误。

解决方案

1. 直接指定Git Bash的完整路径(推荐)

修改Gradle任务,明确调用Git Bash的bash.exe,而非系统默认的bash。Git Bash通常安装在C:\Program Files\Git\bin\bash.exe,调整后的任务代码如下:

task paths(type: Exec) {
    workingDir 'G:/WS/ws-shared'
    commandLine 'C:/Program Files/Git/bin/bash.exe', './src/test/java/javaToJs/paths.sh'
}

若你的Git安装路径不同,替换为对应bash.exe的实际路径即可。

2. 调整系统PATH优先级

将Git Bash的bin目录(如C:\Program Files\Git\bin)移到系统PATH的最前端,让系统优先识别Git Bash的bash,而非WSL的关联程序:

  • 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  • 在系统变量的Path列表中,把Git Bash的bin目录条目上移至WSL相关条目(如C:\Windows\System32)之前

3. 在脚本中适配路径格式(临时方案)

若不想修改Gradle任务或系统PATH,可在paths.sh中添加路径转换逻辑,自动将WSL风格的/mnt/g转换为Git Bash风格的/g:

#!/bin/bash

# 适配WSL到Git Bash的路径转换
if [[ "$JAVA_HOME" == /mnt/* ]]; then
    JAVA_HOME=$(echo "$JAVA_HOME" | sed 's/\/mnt\/\([a-z]\)/\/\1/')
fi

echo "Current working directory: $(pwd)"
echo "JAVA_HOME: $JAVA_HOME"
echo "Accessing path: $JAVA_HOME/bin/java"
ls -l "$JAVA_HOME/bin/java" || echo "Failed to access java"

内容的提问来源于stack exchange,提问作者rupweb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 17:15:18