Kotlin如何运用SPI机制加载运行kts脚本

说明:此为gradel项目

一般java通过ScriptEngineManager.getEngineBy***()不同的方式来获取相应的脚本,网上有很多方式,这里就不详细解释了。

kotlin如何在主函数中加载运行.kts的脚本文件呢,如果Kotlin直接调用ScriptEngineManager().getEngineByExtension("kts")会出现null,看如下源代码,ScriptEngineFactory在源代码中是null,需要通过SPI来重新调用

Kotlin如何运用SPI机制加载运行kts脚本

这里提供一个较为方便的方法:

通过SPI机制,SPI这里不过多介绍,不会的网上很多,自己查看。

在配置文件中引入以下jar

Kotlin如何运用SPI机制加载运行kts脚本

配置如下

Kotlin如何运用SPI机制加载运行kts脚本Kotlin如何运用SPI机制加载运行kts脚本

主函数如下

Kotlin如何运用SPI机制加载运行kts脚本

Kotlin如何运用SPI机制加载运行kts脚本

先编译后运行

运行结果:

Kotlin如何运用SPI机制加载运行kts脚本

如有错误,还请留言纠正

博主QQ:814029117