Kotlin 使用命令行编译

JetBrains-Kotlin
Kotlin在线运行及代码演示

studio 运行kotlin每次都要启动程序 着实不爽,在线执行时常崩溃, 于是便想起命令行的方式, 类似pathon在在终端执行文件以及直接运行代码

本地终端执行

widows 安装

Kotlin 命令行编译工具下载地址:https://github.com/JetBrains/kotlin/releases,选择版本下载。
下载完成后,解压到指定目录,然后将 bin 目录添加到系统环境变量。bin 目录包含编译和运行 Kotlin 所需的脚本。

Mac os 和 Linux 安装

直接命令行安装更方便

1
2
3
4

$ curl -s https://get.sdkman.io | bash

$ sdk install kotlin

Homebrew

在 OS X 下,你可以使用 Homebrew 安装:

1
2
$ brew update
$ brew install kotlin

创建和运行第一个程序

创建一个名为 hello.kt 文件,代码如下:

1
2
3
fun main(args: Array<String>) {
println("Hello, World!")
}

使用 Kotlin 编译器编译应用:

1
$ kotlinc hello.kt -include-runtime -d hello.jar
  • -d: 用来设置编译输出的名称,可以是 class 或 .jar 文件,也可以是目录。
  • -include-runtime : 让 .jar 文件包含 Kotlin 运行库,从而可以直接运行。

如果你想看所有的可用选项,运行:

1
$ kotlinc -help

运行应用

1
2
$ java -jar hello.jar
Hello, World!

编译成库

若需要将生成的 jar 包供其他 Kotlin 程序使用,可无需包含 Kotlin 的运行库:

1
$ kotlinc hello.kt -d hello.jar

由于这样生成的 .jar 文件不包含 Kotlin 运行库,所以你应该确保当它被使用时,运行时在你的 classpath 上。
你也可以使用 kotlin 命令来运行 Kotlin 编译器生成的 .jar 文件

1
$ kotlin -classpath hello.jar HelloKt

HelloKt 为编译器为 hello.kt 文件生成的默认类名。

直接执行Kotlin代码

我们可以运行如下命令得到一个可交互的 shell,然后输入任何有效的 Kotlin 代码,并立即看到结果

1
2
3
4
liangkunkundeMacBook-Pro:~ lkk$ kotlinc-jvm
Welcome to Kotlin version 1.0.1-2 (JRE 1.8.0_73-b02)
Type :help for help, :quit for quit
>>>

输入代码

1
2
3
4
5
6
7
8
9
>>> val arr = Array<String>(5, {it -> "$it: 我是字符串"})
>>> for(x in arr){
... println(x)
... }
0: 我是字符串
1: 我是字符串
2: 我是字符串
3: 我是字符串
4: 我是字符串

使用命令行执行脚本

Kotlin 也可以作为一个脚本语言使用,文件后缀名为 .kts 。

例如我们创建一个名为 list_folders.kts,代码如下:

1
2
3
4
import java.io.File

val files = File("/Users/lkk").listFiles {file -> file.isDirectory() }
files?.forEach {println(it)}

执行时通过 -script 选项设置相应的脚本文件。

1
$ kotlinc -script list_folders.kts