Kotlin 环境配置
Kotlin 命令行编译工具下载地址:https://github.com/JetBrains/kotlin/releases/latest,目前最新为 1.1.51
推荐下载最新的 Release 版本,本教程基于最新的 V 1.1.51
下载完成后,解压到指定目录,然后将 bin 目录添加到系统环境变量 $PATH
bin 目录包含编译和运行 Kotlin 所需的脚本
SDKMAN 安装 Kotlin
MAC OS X、Linux、Cygwin、FreeBSD 和 Solaris 系统上也可以使用 SDKMAN 来安装
$ curl -s https://get.sdkman.io | bash
$ sdk install kotlin
Homebrew
MAC OS X 下,可以使用 Homebrew 安装
$ brew update $ brew install kotlin
MacPorts
如果你是 MacPorts 用户,可以使用下面的命令安装:
$ sudo port install kotlin
查看 Kotlin 版本
使用下面的命令可以查看 Kotlin 的版本
$ kotlinc -version info: kotlinc-jvm 1.1.51 (JRE 1.8.0_101-b13)
创建和运行第一个程序
1. 首先创建一个名为 hello.kt 文件,代码如下:
hello.kt
fun main(args: Array<String>) { println("Hello, World!") println("Hello 简单教程!") }
2. 然后使用 Kotlin 编译器编译文件:
$ kotlinc hello.kt -include-runtime -d hello.jar
- -d : 用来设置编译输出的名称,可以是 .class 或 .jar 文件,也可以是目录
- -include-runtime : 让 .jar 文件包含 Kotlin 运行库,从而可以直接运行
编译运行以上 Kotlin 范例,输出结果如下
$ kotlinc hello.kt -include-runtime -d hello.jar $ java -jar hello.jar Hello, World! Hello 简单教程!
如果想查看 kotlinc 的所有可用选项,可以使用下面的命令
$ kotlinc -help
编译成 .jar 库
如果想让生成的 jar 包供其他 Kotlin 程序使用,则无需包含 Kotlin 的运行库
$ kotlinc hello.kt -d hello.jar
因为生成的 .jar 文件不包含 Kotlin 运行库,所以在使用时,要确保在 classpath 路径上
kotlin 命令
我们也可以直接使用 kotlin 命令来运行 Kotlin 编译器生成的 .jar 文件
$ kotlin -classpath hello.jar HelloKt
- HelloKt 为编译器为 hello.kt 文件生成的默认类名
运行 REPL( 交互式解释器 )
在终端下可以直接输入 kotlinc
或 kotlinc-jvm
进入 Kotlin 提供的 REPL
我们可以在 REPL 里输入任何有效的 Kotlin 代码,而且能立即看到结果
$ kotlinc Welcome to Kotlin version 1.1.51 (JRE 1.8.0_101-b13) Type :help for help, :quit for quit >>> 7 + 13 20 >>> 7 * 13 91 >>> 13 / 7 1 >>> println("Hello World"); Hello World >>> println("Hello 简单教程!") Hello 简单教程! >>> >>> :quit
使用命令行执行脚本
Kotlin 可以当做脚本语言使用,此时的文件扩展名为 .kts
( Kotlin Script )
下面我们就创建一个名为 ls_folders.kts
的 Kotlin 脚本,用来列出当前目录下的文件
ls_folders.kts
import java.io.File val folders = File(args[0]).listFiles { file -> file.isDirectory() } folders?.forEach { folder -> println(folder) }
然后使用 kotlinc -script
来运行这个脚本文件
$ kotlinc -script ls_folders.kts /tmp /tmp/com.apple.launchd.4RKRpFihtd /tmp/zxpsignOszJgcYeeaqBa3rZ /tmp/powerlog /tmp/zxpsignmKRyJ0GQ5ihCZGgU /tmp/zxpsignA109TCaX9Ge1R0aA /tmp/zxpsignwwLNsCvhUYSwN00B /tmp/zxpsignzZeMmmsog9IrLbGP /tmp/zxpsignRFkexLkSxdc0BXCf /tmp/zxpsignnidXdFMd3VQOHKH7 /tmp/zxpsignOzWp4UnMinNKP7A2 /tmp/lilo.49106 /tmp/com.apple.launchd.jWXPKDhtci /tmp/zxpsignvHKfHArLA79z6pBN /tmp/zxpsign6roHO13COPKo9kFc /tmp/zxpsignXH6f4knomrLBbcno /tmp/zxpsignMfJEiIgnH9vRzzC0