位置:首页 > Kotlin > Sublime配置Kotlin运行环境与编写程序设置教程

Sublime配置Kotlin运行环境与编写程序设置教程

时间:2026-08-17  |  作者:实验室老王  |  阅读:0

Sublime Text 本身不直接支持运行 Kotlin 脚本(.kts,这确实是个小遗憾。必须借助外部工具,通过 kotlinc-jvmkotlin 命令配合 Build System 来实现。

不过有个关键点要先明确:新版 Kotlin(≥1.9)已经弃用了 kotlinc 的脚本模式kotlin 命令才是专门为 .kts 设计的解释器。很多人卡在这里,往往就是因为用错了命令。

确认系统已装对命令:kotlin 而非 kotlinc

最常见的误区,是以为 kotlinc 能跑 .kts 文件。实际上,kotlinc 只编译 .kt 文件。

真正用于脚本的是独立的 kotlin 可执行文件。它随 Kotlin CLI 一起安装,不是别名或软链。

  • 在终端执行 kotlin -version,必须要有输出,比如 Kotlin version 1.9.24。如果报 command not found,说明没装完整版 Kotlin CLI,或者 PATH 没有包含其 bin/ 目录。
  • kotlinc -versionkotlin -version 都应该可用,但用途完全不同:kotlinc 编译 .kt 生成 .jarkotlin 则直接执行 .kts
  • 需要警惕的是,通过 Homebrew 安装的 kotlinbrew install kotlin)常常缺少 kotlin 命令,只带 kotlinc。更稳妥的做法,是从 GitHub Releases 下载官方 ZIP 包并手动配置 PATH。

先确认命令可用,再配置 Sublime

如果终端里连 kotlin 都无法执行,那么 Sublime 的 Build System 也一定无法正常工作。

先检查命令,再写构建配置,可以少走很多弯路。

Build System 必须用 shell_cmd 调 kotlin,且路径不能含空格或中文

Sublime 默认调用 CMD(Windows)或 sh(macOS/Linux)。而 kotlin 脚本对路径非常敏感,尤其在 Windows 下,空格和中文路径很容易直接中断执行。

  • .kts 文件放在纯英文、无空格的路径下,例如 D:kthello.kts~/dev/kt/hello.kts
  • Build System 配置中必须用 shell_cmd,而不是 cmd。否则,&&、引号等 shell 特性无法生效。
  • Windows 用户如果使用 PowerShell,需要显式加上 pwsh -c 前缀。更稳妥的做法是改用 cmd /c,并确保用双引号包裹路径:"shell_cmd": "cmd /c "kotlin \"$file\"""
  • macOS/Linux 用户要注意 shell 类型。Sublime 默认用 sh,但某些 kotlin 脚本依赖 bash 特性,可以改写为 bash -c "kotlin '$file'"

.kts 文件里不能写 fun main(),得用顶层表达式或 @file:JvmName

Kotlin 脚本(.kts)和普通 Kotlin 源码有本质区别。.kts 默认执行文件内的顶层代码,不走 main 入口

强行写 fun main() 不会报错,但也不会执行。这是另一个很常见的陷阱。

  • 正确的写法是直接写可执行语句,比如:println("Hello from .kts!")
  • 如果想复用 .kt 里的 main 函数逻辑,可以用 @file:JvmName("ScriptMain") + fun main(),但必须配合 -J-Dkotlin.scripting.enableExperimental=true 启动参数,并且在 Sublime Build System 中显式加上。
  • 常见的错误现象是:Build 成功但无输出。大概率是写了 fun main() 却没触发,或者脚本里用了未声明的变量(.kts 不会自动导入 kotlin.io.* 等)。

编码与 JVM 参数容易被忽略,尤其中文输出乱码

即使 kotlin 命令能跑通,中文字符串打印成 ,或者抛 ja va.nio.charset.MalformedInputException,也是高频问题。

根源通常很简单:JVM 默认编码不是 UTF-8

  • Windows CMD 默认编码是 GBK,kotlin 进程会继承这个编码,导致读取 UTF-8 编码的 .kts 文件失败。
  • 解决方法是在 Build System 的 shell_cmd 中显式指定 JVM 参数:kotlin -J-Dfile.encoding=UTF-8 "$file"
  • macOS/Linux 用户如果使用 zsh/bash,还需要确认终端 locale 输出包含 UTF-8,否则 kotlin 可能仍然按 locale 解码源文件。
  • 额外提示:不要在 Build System 里混用 kotlinckotlin 命令逻辑,比如先 kotlinc -scriptja va。新版已经不支持 -script 参数了。

Sublime配置Kotlin脚本运行环境_Sublime编写Kotlin程序设置

.kts 和 .kt 不能共用一个 Build System

最容易被忽略的,其实是 .kts.kt 的根本差异。前者是脚本,后者是编译单元。

在 Sublime 里,一个 Build System 无法同时正确处理两者。这一点非常关键。

  • 必须分开建两个文件:KotlinScript.sublime-buildKotlin.sublime-build
  • selector 也要分别设为 source.kotlin.scriptsource.kotlin
  • 否则插件识别不准时,不仅构建容易出错,连语法高亮都会错位。

结论很明确:运行 .kts 时,核心不是 kotlinc,而是 kotlin 命令;同时必须为 .kts.kt 分别配置独立的 Build System。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多