Gradle运行Gatling项目报错:无法找到或加载主类Files\Eclipse
问题场景
环境配置:
- Java 1.11(OpenJDK,安装路径含空格:
C:\Program Files\Eclipse Adoptium\jdk-11.0.14.101-hotspot) - Gradle 6.8
- Scala 2.12.8
build.gradle配置:
plugins { id "com.github.lkishalmi.gatling" version "3.3.4" } repositories { jcenter() }
执行命令 ./gradlew clean build gatlingRun-$1 时出现错误:
成功启动进程'C:\Program Files\Eclipse Adoptium\jdk-11.0.14.101-hotspot\bin\java.exe',但报错:Error: Could not find or load main class Files\Eclipse,Caused by: java.lang.ClassNotFoundException: Files\Eclipse
解决方案
该问题核心是Java安装路径包含空格,Gradle传递路径时未正确转义/加引号,可通过以下方式解决:
使用Windows短路径替代含空格的路径
在CMD中执行dir /x查看Program Files的短路径(通常为PROGRA~1),将JAVA_HOME修改为C:\PROGRA~1\Eclipse Adoptium\jdk-11.0.14.101-hotspot,重启终端后重新执行Gradle命令。通过Gradle工具链配置指定Java环境
在build.gradle中添加工具链配置,让Gradle自动处理路径空格:java { toolchain { languageVersion = JavaLanguageVersion.of(11) vendor = JvmVendorSpec.ADOPTIUM } }在gradle.properties中带引号配置Java路径
在项目根目录的gradle.properties文件中添加:org.gradle.java.home="C:\Program Files\Eclipse Adoptium\jdk-11.0.14.101-hotspot"调整命令执行方式(Windows环境)
改用Windows批处理脚本执行,避免类Unix路径写法:gradlew.bat clean build gatlingRun-$1,同时确保$1对应的参数若含空格也用引号包裹。
内容的提问来源于stack exchange,提问作者kumar2121

