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

使用Karate 0.9.6与Java 17运行测试时遇ExceptionInInitializerError错误

问题解决:Karate 0.9.6 + Java 17 运行测试报 NullPointerException

错误原因

Karate 0.9.6版本依赖Nashorn脚本引擎,但Java 11及以上版本(包括Java 17)已官方移除Nashorn,导致com.intuit.karate.ScriptBindings.NASHORN对象为空,触发空指针异常。

解决方案

方案1:升级Karate版本

升级到Karate 1.0.0及以上版本,这些版本已移除对Nashorn的依赖,改用GraalVM JavaScript引擎,完全兼容Java 17。以Maven项目为例,修改依赖:

<dependency>
    <groupId>com.intuit.karate</groupId>
    <artifactId>karate-core</artifactId>
    <version>1.4.1</version> <!-- 推荐使用最新稳定版 -->
    <scope>test</scope>
</dependency>

方案2:保留Karate 0.9.6,手动添加Nashorn依赖

若无法升级Karate,可通过添加第三方Nashorn依赖来兼容:

<dependency>
    <groupId>org.openjdk.nashorn</groupId>
    <artifactId>nashorn-core</artifactId>
    <version>15.4</version>
    <scope>test</scope>
</dependency>

注:此为临时兼容方案,长期建议优先升级Karate版本以获得更好的兼容性和功能支持。

内容的提问来源于stack exchange,提问作者VijayKumar K M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 19:12:02