如何解决Kotlin项目中javax.script.ScriptException无法解析问题
解决javax.script.ScriptException无法解析的问题
问题原因
javax.script.ScriptException 是Java SE标准库中的类,并非Kotlin或Android SDK内置:
- 若你是Android项目:Android Runtime(ART)并未包含完整的javax.script包,直接引用会提示无法解析。你之前添加的Kotlin脚本相关依赖(如
kotlin-scripting-jsr223)是基于Java SE的javax.script API实现的,本身不提供该类的定义。 - 若你是普通JVM Kotlin项目:可能是JDK版本过低(需JDK 6及以上),或是JDK 9+模块化项目未声明依赖
javax.script模块。
解决方案
针对Android项目
在build.gradle(app)中添加第三方兼容的javax.script API依赖:
// 推荐:Apache Servicemix打包的兼容库 implementation("org.apache.servicemix.bundles:org.apache.servicemix.bundles.javax-script:2.0.0_1") // 或使用官方API包 implementation("javax.script:javax.script-api:1.0")
添加后同步Gradle,清理并重建项目,即可正常引用ScriptException。
针对普通JVM Kotlin项目
- 检查JDK版本:确保使用JDK 8及以上版本(javax.script自JDK 6起内置)。
- JDK 9+模块化项目:在
module-info.java中添加模块依赖声明:
requires javax.script;
补充说明
如果需要通过JSR223规范执行Kotlin脚本,保留kotlin-scripting-jsr223依赖即可,但必须先通过上述方案确保javax.script API已存在。
内容的提问来源于stack exchange,提问作者TDKMS
相关产品推荐
相关产品推荐

