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

无法运行Karate Feature文件:JDK17与Karate1.4.1依赖报错求助

问题解决:JDK 17 + Karate Core 1.4.1 运行Feature文件时的NPE错误

问题原因

JDK 15及以上版本已移除了Nashorn脚本引擎,而Karate 1.x系列版本默认依赖Nashorn处理JavaScript逻辑,因此在JDK 17环境下找不到该引擎,导致com.intuit.karate.ScriptBindings.NASHORN为null,触发空指针异常。

解决方案

方案1:升级Karate到2.x版本(推荐)

Karate 2.x已全面切换为GraalVM JavaScript引擎,不再依赖Nashorn,完美兼容JDK 17及更高版本。只需修改Maven依赖中的Karate版本:

<dependency>
    <groupId>com.intuit.karate</groupId>
    <artifactId>karate-core</artifactId>
    <version>2.1.0</version> <!-- 使用最新稳定版即可 -->
    <scope>test</scope>
</dependency>

方案2:保留Karate 1.x,手动添加Nashorn依赖

如果无法升级Karate版本,可通过Maven引入独立的Nashorn核心库:

<dependency>
    <groupId>org.openjdk.nashorn</groupId>
    <artifactId>nashorn-core</artifactId>
    <version>15.4</version> <!-- 选择与JDK版本适配的版本 -->
    <scope>test</scope>
</dependency>

注意:Nashorn已被官方标记为废弃,长期来看建议优先选择方案1升级Karate版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 14:39:52