Sublime Text 不能直接运行 Kotlin,但可通过安装 Kotlin 插件实现语法高亮,并配置构建系统调用 kotlinc 和 java 编译运行;前提是 JDK 与 Kotlin 编译器已正确安装并加入 PATH,且构建系统中 selector 必须为 source.kotlin、-include-runtime 参数不可省略。

Sublime Text 不能运行 Kotlin,但能高亮、能编译——前提是 kotlinc 和 java 在终端里已可用,否则所有配置都是空转。
为什么 .kt 文件打开还是白底黑字?
Sublime 默认根本不认识 .kt 后缀,它连“这是 Kotlin”都不知道,更不会加载语法定义。这不是插件没装好,是根本没告诉它该用哪个词法分析器。
- 必须通过 Package Control 安装
Kotlin插件(作者是jaredly,不是LanguageKotlin或带Deprecated标签的) - 安装后要重启 Sublime,或手动执行
Ctrl+Shift+P→ 输入Set Syntax: Kotlin - 右下角状态栏显示
Kotlin才算生效;若仍显示Plain text,说明插件未加载或文件未关联 - 新建文件默认不触发语法识别,得先保存为
.kt后缀,或手动切换语法
Build System 怎么写才能编译并运行 Kotlin 脚本?
Sublime 的构建系统本质是调 shell 命令,cmd 数组里每个字符串都对应一个命令参数,引号、空格、顺序错一个就失败。
-
"cmd": ["kotlinc", "$file", "-include-runtime", "-d", "${file_base_name}.jar"]是编译步骤,-include-runtime必须加,否则java -jar运行时会报NoClassDefFoundError: kotlin/jvm/internal/Intrinsics - 想一步编译+运行,别用
&&拼在同一个cmd里——Windows CMD 不认这个写法,且 Sublime 的shell: true在不同系统行为不一致;推荐拆成variants - 正确写法示例(保存为
Kotlin.sublime-build):
{
"cmd": ["kotlinc", "$file", "-include-runtime", "-d", "${file_base_name}.jar"],
"file_regex": "^([^ ]+)\s+([0-9]+):([0-9]+):\s+(.*)$",
"selector": "source.kotlin",
"shell": true,
"variants": [
{
"name": "Run",
"cmd": ["java", "-jar", "${file_base_name}.jar"]
}
]
}
-
selector必须是source.kotlin(不是source.Konlin或source.kt),否则 Build System 不自动激活 - Windows 用户若
kotlinc.bat不在 PATH,得写绝对路径,如"C:\kotlinc\bin\kotlinc.bat",注意双反斜杠
为什么 kotlinc -version 有输出,但 Sublime 里按 Ctrl+B 没反应?
Sublime 启动时读取的是当时环境变量的快照,改完 PATH 后不重启,它压根看不到新路径。
- Mac/Linux:改完
~/.zshrc后,要么重开终端再启动 Sublime,要么在终端里执行open -a "Sublime Text" - Windows:PATH 改完必须重启 Sublime,CMD 环境变量刷新和 GUI 进程无关
- 验证方式:Sublime 里
Ctrl+Shift+P→ 输入Terminal(需装 Terminus 插件),在内置终端里跑kotlinc -version,能出结果才算真正生效 - 常见静默失败原因:
$file路径含中文或空格(尤其 Windows 桌面路径)、main函数不在顶层(类内部的main不会被kotlinc -script识别)、.kt文件名与主类名不一致(非脚本模式下会报class not found)
最易被忽略的一点:Kotlin 脚本(.kts)和普通 .kt 编译流程不同,前者用 kotlin 命令直接执行,后者必须经 kotlinc 编译再 java 运行——别把两种 build system 混用。

















