Kotlin 命令行编译器
每个 Kotlin 版本都附带一个独立的编译器版本。你可以手动或通过包管理器下载最新版本。
NOTE
安装命令行编译器并非使用 Kotlin 的必要步骤。
通常的方法是使用支持 Kotlin 的 IDE 或代码编辑器编写 Kotlin 应用程序,
例如 IntelliJ IDEA 或 Android Studio。
它们开箱即用地提供了完整的 Kotlin 支持。
了解如何在 IDE 中开始使用 Kotlin。
安装编译器
手动安装
要手动安装 Kotlin 编译器:
- 从 GitHub Releases 下载最新版本(
kotlin-compiler-2.1.21.zip
)。 - 将独立编译器解压到一个目录中,并可选择地将
bin
目录添加到系统路径。bin
目录包含在 Windows、macOS 和 Linux 上编译及运行 Kotlin 所需的脚本。
NOTE
如果你希望在 Windows 上使用 Kotlin 命令行编译器,建议手动安装。
SDKMAN!
在基于 UNIX 的系统(例如 macOS、Linux、Cygwin、FreeBSD 和 Solaris)上安装 Kotlin 的一种更简便的方法是 SDKMAN!。它也适用于 Bash 和 ZSH shell。 了解如何安装 SDKMAN!。
要通过 SDKMAN! 安装 Kotlin 编译器,请在终端中运行以下命令:
sdk install kotlin
Homebrew
另外,在 macOS 上你可以通过 Homebrew 安装编译器:
brew update
brew install kotlin
Snap 包
如果你在 Ubuntu 16.04 或更高版本上使用 Snap,你可以从命令行安装编译器:
sudo snap install --classic kotlin
创建并运行应用程序
使用 Kotlin 创建一个简单的控制台 JVM 应用程序,显示
"Hello, World!"
。 在代码编辑器中,创建一个名为hello.kt
的新文件,其中包含以下代码:kotlinfun main() { println("Hello, World!") }
使用 Kotlin 编译器编译应用程序:
bashkotlinc hello.kt -include-runtime -d hello.jar
-d
选项指示生成的类文件的输出路径,该路径可以是目录或 .jar 文件。-include-runtime
选项通过包含 Kotlin 运行时库,使生成的 .jar 文件自包含并可运行。
要查看所有可用选项,请运行:
bashkotlinc -help
运行应用程序:
bashjava -jar hello.jar
编译库
如果你正在开发一个供其他 Kotlin 应用程序使用的库,你可以在不包含 Kotlin 运行时的情况下构建 .jar 文件:
kotlinc hello.kt -d hello.jar
由于以这种方式编译的二进制文件依赖于 Kotlin 运行时, 因此每当你的编译库被使用时,都应确保它存在于 classpath 中。
你还可以使用 kotlin
脚本来运行 Kotlin 编译器生成的二进制文件:
kotlin -classpath hello.jar HelloKt
HelloKt
是 Kotlin 编译器为名为 hello.kt
的文件生成的主类名。
运行 REPL
你可以在不带参数的情况下运行编译器以获得一个交互式 shell。在此 shell 中,你可以输入任何有效的 Kotlin 代码并查看结果。

运行脚本
你可以将 Kotlin 用作脚本语言。 Kotlin 脚本是一个包含顶级可执行代码的 Kotlin 源文件(.kts
)。
import java.io.File
// Get the passed in path, i.e. "-d some/path" or use the current path.
val path = if (args.contains("-d")) args[1 + args.indexOf("-d")]
else "."
val folders = File(path).listFiles { file -> file.isDirectory() }
folders?.forEach { folder -> println(folder) }
要运行脚本,请将 -script
选项和相应的脚本文件传递给编译器:
kotlinc -script list_folders.kts -- -d <path_to_folder_to_inspect>
Kotlin 为脚本自定义提供了实验性支持,例如添加外部属性、 提供静态或动态依赖项等。 自定义是通过所谓的 脚本定义 来实现的——即带有相应支持代码的注解 Kotlin 类。 脚本文件名扩展名用于选择适当的定义。 了解更多关于 Kotlin 自定义脚本的信息。
当相应的 jar 包包含在编译 classpath 中时,准备好的脚本定义会被自动检测并应用。另外,你也可以通过向编译器传递 -script-templates
选项来手动指定定义:
kotlinc -script-templates org.example.CustomScriptDefinition -script custom.script1.kts
有关更多详细信息,请参阅 KEEP-75。