Kotlin Script 及其运行机制简析

本文介绍了 Kotlin Script(kts)的基本概念,展示了如何在命令行中调用 kts 脚本,并探讨了 kts 脚本在没有 main 函数的情况下如何运行。通过分析源码,揭示了 kts 脚本实际上是被编译成一个类的构造方法运行,命令行参数作为构造方法的参数传入。
摘要由CSDN通过智能技术生成

1. 认识 kts

打开你的 IntelliJ,随便找个位置,注意我说的,随便找个位置,创建一个文件,命名为 Hello.kts,然后你就会发现 IntelliJ 能够识别这种类型,文件的 icon 与 kt 后缀的 kotlin 文件没啥区别。

那你知道你创建了一个什么东西吗?它究竟与平时我们写的 Kotlin 代码有啥区别呢?其实,从名字我们就可以了解到,这是一个 Kotlin 的脚本文件,我们可以在其中直接写函数调用,逻辑判断,数值计算,干什么都行。

Hello.kts

 import java.io.File 
   
 println("Hello from kts") 
   
 val file = File(".") 
 file.listFiles().forEach(::println) 
   
 println("The End.") 

这段代码能输出什么呢?

 Hello from kts 
 ./.gradle 
 ./.idea 
 ./build 
 ./build.gradle 
 ./gradle 
 ./gradlew 
 ./gradlew.bat 
 ./Hello.kts 
 ./settings.gradle 
 ./src 
 The End. 

我恰好把这个脚本文件放到了一个工程的目录下面,于是它输出了这个工程根目录的所有文件。

2. 命令行调用 kts

如果只是在 IntelliJ 当中能够运行脚本,那多没意思。脚本就是要放到命令行跑的,就跟 python 一样,当成 shell 的神助攻来帮我们处理一下任务才好。

IntelliJ 的运行方法当然也是可以的,我们不妨把它的命令复制过来给大家看一下:

 $JAVA_HOME/java -Dfile.encoding=UTF-8 -classpath "$INTELLIJ_HOME/Kotlin/kotlinc/lib/kotlin-compiler.jar:$INTELLIJ_HOME/Kotlin/kotlinc/lib/kotlin-reflect.jar:$INTELLIJ_HOME/Kotlin/kotlinc/lib/kotlin-runtime.jar:$INTELLIJ_HOME/Kotlin/kotlinc/lib/kotlin-script-runtime.jar" org.jetbrains.kotlin.cli.jvm.K2JVMCompiler -script /Users/benny/workspace/temp/Forty/Hello.kts 

不知道大家看明白没,Kotlin 的编译器或者说脚本运行时环境都是 jar 包,用 Java 直接调用就 OK 了。不过这么复杂的命令我可不想每次都写。

嗨,这你还犹豫什么,赶紧安装 kotlin 的安装包,里面有 kotlinc 和 kotlin 这样的命令,用法几乎与 javac 和 java 一模一样。安装方法点这里

啊,你说安装好了?那么这时候你运行 kotlinc,是不是会

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值