橘子味的心
标题: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( 交互式解释器 )

在终端下可以直接输入 kotlinckotlinc-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

分类