说明:此为gradel项目

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

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

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

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

在配置文件中引入以下jar

配置如下

主函数如下

先编译后运行

运行结果:

如有错误,还请留言纠正

博主QQ:814029117

Kotlin如何运用SPI机制加载运行kts脚本相关推荐

  1. Android开发之通过接口回调机制加载数据(源代码分享)

    Android开发之通过接口回调机制加载数据的简单实现,在实际开发中通过callback方法得到网络加载的数据的使用频率远比通过直接开启线程或异步任务加载数据的频率高的多,这篇文章的代码将简单实现该机 ...

  2. Atitit. 木马病毒的外部class自动加载机制------加载class的方法总结

    Atitit. 木马病毒的外部class自动加载机制------加载class的方法总结 Atitit.java load class methods 1. 动态加载jar文件和class文件. 1 ...

  3. Linux下编译、链接、加载运行C++ OpenCV的两种方式及常见问题的解决

    Linux下编译.链接.加载运行C++ OpenCV的两种方式及常见问题的解决 在Linux下安装完OpenCV C++之后(还没有安装的读者请参考Ubuntu 18.04 安装OpenCV C++) ...

  4. 要注意页面中加载的第三方脚本

    如果页面需要加载第三方的脚本,或访问第三方URL的时候,除非特殊需要,否则一定不要放在页面代码的头部,而应该放在页面的最底部,最晚加载.这样有利于加快网站的速度.因为如果第三方面脚本下载很慢的话,那整 ...

  5. Kotlin 关于 REPL交互式编程命令行 运行kts报错问题

    Kotlin 关于 REPL交互式编程命令行 运行kts报错问题 今天拿到新书兴致勃勃开了个新工程学习,本着没一个点都要亲手敲一敲的原则开始了,哪想到第一章第一节就卡主了 下图 我的理解就是可以脱离格 ...

  6. spi 动态加载、卸载_理解 ServiceLoader类与SPI机制

    对于Java中的Service类和SPI机制的透彻理解,也算是对Java类加载模型的掌握的不错的一个反映. 了解一个不太熟悉的类,那么从使用案例出发,读懂源代码以及代码内部执行逻辑是一个不错的学习方式 ...

  7. JAVA1.6实现动态编译加载运行

    一直以为我们写好的程序都需要预先编译好,然后再运行,直到今天在看书的时候才看到书上说JAVA1.6之后可以动态的编译JAVA文件,这着实让我高兴了一把,为什么这么兴奋呢,我一心想着能用技术实现动态更新 ...

  8. 智能管家App kotlin版(7)——美女图片加载

    前言:有新闻了怎么能少得了美女,我们使用Gank的接口实现一个美女列表,封装我们的图片 加载库Picasso,使用起来更加的方便,很值得期待!!! 此篇文章完成后效果展示: 1.编写xml交互代码: ...

  9. 开源博客QBlog开发者视频教程:模板机制加载原理解说(三)

    前言: 感谢大伙的支持,同样对于本次视频的发布,也限量发送20份源码,秋色园10份,博客园10份. 秋色园在 开源博客下载 处留言,博客园在 秋色园QBlog高性能博客开放源码下载 限量下载1000次 ...

最新文章

  1. k8s-harbor安装
  2. python爬虫脚本ie=utf-8_python脚本-共享文件爬虫
  3. CI框架中pdo的使用方法
  4. 本地方法(JNI)——调用 java 方法
  5. 美国新WiFi技术功耗低于蓝牙LE和Zigbee
  6. KaimingInit论文的译读笔记
  7. vue+element-ui 实现table单元格点击编辑,并且按上下左右键单元格之间切换
  8. 连续数字及数字串识别技术
  9. K210系列开发板介绍
  10. [Swift]LeetCode1049.最后一块石头的重量 II | Last Stone Weight II
  11. z平面与s平面计算机控制稳定性,2 计算机控制系统分析
  12. 据说是可减少50%交通事故的超越卓越经验
  13. Quicker | 便捷的截屏软件 | 截图 | 截图OCR(图片编辑及文字识别)(二)
  14. 我的第一个小程序(Discuz! + 微信小程序)
  15. Python语言在人工智能(AI)中的优势
  16. 角点检测的几种基本方法
  17. linux surface pro 4 driver,重置出错?微软Win10平板Surface Pro 4重装系统教程详解
  18. oracle的dbms_aw,解决 DBMS_AW_EXP: BIN$*****==$0 not AW$
  19. “校园安全+教务管理+家校互动+教育大数据”创造安全的家校生态环境
  20. java sbt_sbt使用详解

热门文章

  1. 全国职业院校技能大赛 网络建设与运维 赛题(一)
  2. Linux中怎么搭建SSH远程连接服务器
  3. 基于STM32F103RC移植uc/OS系统
  4. 三星礼包 android,三星Galaxy S10彩蛋大礼包到货!神秘竞买得主现身
  5. MyBatis Log Plugin插件作者之闲言碎语
  6. 使用java做mysql数据迁移时遇到的两个问题
  7. x86 CPU中逻辑地址到物理地址映射过程
  8. php使用popover,php中bootstrap框架.popover弹出框,鼠标移动到上面自动显示,离开自动消失...
  9. 狂扫近300万读者,蟒蛇书升级版即将出版,招募审读人
  10. Python简单实现爬取快递物流实时信息!到了及时提醒!