Kotlin 在控制台下的编译和运行

Kotlin 在控制台下的编译和运行

有时候会把 kotlin 当成脚本使用,同时在命令行环境下使用,毕竟 kotlin 源码的 kt 文件完全可以当成脚本编写,可以通过官方提供的编译器将脚本编译为 class 或 jar,或者直接运行脚本;

Kotlin 控制台编译工具配置

当要在控制台下直接编译 kotlin 文件时,可以使用官方提供的编译工具: https://github.com/JetBrains/kotlin/releases/tag/v1.1.50  ,下载解压后将文档 bin 目录添加到系统 path 变量,以方便调用;
之后可以通过 “kotlin -version”测试编译工具是否正确安装;

kotlin文件的编译和运行

假设需要编译的kotlin文件为以下:
hello.kt
fun main(args: Array<String>) {
    println("Hello world!");
}
在命令行中将其编译为 jar 文件
kotlinc hello.kt -include-runtime -d hello.jar
之后会在该目录下编译产生一个“hello.jar”文件,运行如下
java -jar hello.jar
输出 “Hello World!”

kotlin 脚本的编译和运行

当然可以把kotlin完全当成脚本来写,无需编译,直接使用编译器解释运行;
一个简单的 kotlin 脚本如下:
hello.kts
val name = "assad";
println ("Hello,$name");
命令行中直接运行该脚本
kotlinc -script hello.kts
输出:“Hello,assad”;

kotlin 脚本执行系统指令

作为脚本,经常要调用到系统的一些指令,但是目前 kotlin 还没有像 groovy shell 那样对系统指令有较好的封装,kotlin 仍然要借助 Java 的 Runtime或ProcesserBuilder,这里简要介绍 Runtime 的使用;
val p:Process = Runtime.getRuntime().exec("ls");
reader:BufferedReader = BufferedReader(InputStreamReader(p.getInputStream()));   //获取指令返回流
p.waitFor();
if(p.exitValue == 0){
    str = "";
    while((str = reader.readerLine()) != null)
        println(str);   
}
相比于 groovy ,我个人觉得比起kotlin,groovy 更加适合作为脚本使用,不管是解释还是调用系统指令上,语法都更加灵活简便,至于执行效率都是要先编译为字节码,主要速度差别在于编译器,这方面我没怎么研究,但是一般系统脚本对执行效率也基本没什么要求;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值