升级Karate 1.4.0与Java 20后出现cucumber.api.cli.Main类找不到异常
解决Karate 1.4.0 + Java 20环境下Eclipse运行.feature文件报错问题
报错信息
Error: Could not find or load main class cucumber.api.cli.Main
Caused by: java.lang.ClassNotFoundException: cucumber.api.cli.Main
问题原因
Karate 1.4.0移除了对旧版Cucumber CLI的依赖,改用自身专属运行器,但Eclipse中旧的运行配置仍在调用Cucumber的主类,导致类找不到。
解决方案
- 修正Eclipse运行配置
- 右键目标.feature文件 → 「Run As」→ 「Run Configurations...」
- 找到对应「Cucumber Feature」配置项,将「Main class」字段的值从
cucumber.api.cli.Main替换为com.intuit.karate.cli.Main
- 确认pom.xml依赖配置
确保只引入Karate官方依赖,无需额外添加旧版Cucumber依赖,示例配置如下:
<dependencies> <dependency> <groupId>com.intuit.karate</groupId> <artifactId>karate-core</artifactId> <version>1.4.0</version> <scope>test</scope> </dependency> <dependency> <groupId>com.intuit.karate</groupId> <artifactId>karate-junit5</artifactId> <version>1.4.0</version> <scope>test</scope> </dependency> </dependencies>
- 适配Java 20环境
- 右键项目 → 「Properties」→ 「Java Build Path」→ 「Libraries」,确认JRE系统库为Java 20
- 切换到「Java Compiler」选项卡,勾选「Use compliance from execution environment 'JavaSE-20' on the 'Java Build Path'」
- 清理重建项目
执行「Project」→「Clean...」清理项目,再右键项目→「Maven」→「Update Project...」刷新依赖并重建
内容的提问来源于stack exchange,提问作者Vijay
相关产品推荐
相关产品推荐

