·软件知识库 ·模板素材库
注册 | 登录

您所在的位置: INDEX > j2se > 使用easy-captcha验证码出现javax. script ScriptEngine.eval(String)" because "engine" is nul

使用easy-captcha验证码出现javax. script ScriptEngine.eval(String)" because "engine" is nul

许杰 Sun Jul 05 12:01:51 CST 2015 字号:

java项目使用 ArithmeticCaptcha 验证码,出现 javax. script ScriptEngine.eval(String)" because "engine" is nul

ArithmeticCaptcha captcha = new ArithmeticCaptcha(111, 36);

<dependency>
    <groupId>com.github.whvcse</groupId>
    <artifactId>easy-captcha</artifactId>
    <version>1.6.2</version>
</dependency>

2. 问题分析

Jdk8中内置的JavaScript引擎 nashorn 被移除,导致验证码使用报错Cannot invoke "javax.script.ScriptEngine.eval(String)" because "engine" is null

项目中使用了 com.github.whvcse包的easy-captcha 验证码依赖,升级至Jdk17后,验证码接口报错:Cannot invoke "javax.script.ScriptEngine.eval(String)" because "engine" is null,

错误原因很明显脚本引擎执行脚本语句报错,因为执行引擎为空。

查询相关资料Jdk8自带的JavaScript引擎 nashorn 再升级到Jdk9后就被移除了,从而导致报错

3. 解决方法

在pom文件添加JavaScript引擎 nashorn 依赖,重新启动项目即可

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




『相关搜索』
版本信息:kms v1.3 鄂ICP备2023004815号-1 51LA统计