不能。Sublime Text 是文本编辑器,无内置 Kotlin 编译器或 JVM,需手动配置 JDK 11+、Kotlin CLI 并通过 Build System 调用 kotlinc 和 java 命令,且 main 函数须为顶层函数、路径须英文、命令中引号不可省略。

Sublime Text 能不能直接运行 Kotlin 代码
不能。Sublime Text 本身只是文本编辑器,没有内置 Kotlin 编译器或 JVM 运行时,kotlinc 和 java 都得靠系统环境提供,它只能调用外部命令——所以所谓“配置 Kotlin 环境”,本质是配好命令行能跑通,再让 Sublime 通过 Build System 调它。
必须先装对 Kotlin 编译器和 JDK
很多人卡在第一步:以为装了 Android Studio 就等于有 kotlinc,其实不一定。Android Studio 自带的 Kotlin 编译器路径深、不加入 PATH,Sublime 找不到。
- 推荐方式:单独安装 Kotlin CLI compiler(解压后把
bin/目录加进系统PATH) - JDK 版本至少要 11(Kotlin 1.9+ 默认要求),检查用:
java -version和kotlinc -version - Windows 用户注意:PowerShell 和 CMD 的
PATH加载可能不一致,Sublime 默认调用的是 CMD 环境,改完 PATH 后要重启 Sublime
怎么写一个可用的 Kotlin Build System
Sublime 的 Tools → Build System → New Build System 创建的 JSON 文件,核心是让 cmd 正确调起 kotlinc 编译 + java 运行,且处理好文件名、类名、输出目录这些细节。
- 默认
kotlinc编译生成.class文件,但类名必须匹配文件名(如Hello.kt里得是class Hello或顶层fun main) - 编译命令建议用:
kotlinc "$file" -include-runtime -d "$file_base_name.jar",生成自包含 jar 更稳妥,避免ClassNotFoundException - 运行命令接上:
java -jar "$file_base_name.jar",不要用java $file_base_name——Kotlin 编译出的类名不是简单文件名 - Windows 下路径空格会导致失败,
"$file"的双引号不能省;macOS/Linux 注意 shell 类型(Sublime 默认sh,某些功能需bash)
{
"shell_cmd": "kotlinc \"$file\" -include-runtime -d \"$file_base_name.jar\" && java -jar \"$file_base_name.jar\"",
"file_regex": "^(.*):([0-9]+):([0-9]+):.*$",
"selector": "source.kotlin"
}
为什么 main 函数总不执行或报错
最常见不是配置问题,而是 Kotlin 语法没对上 JVM 启动契约。
-
fun main()可以,但必须是顶层函数(不在 class 内),且文件名无所谓(Kotlin 1.6+ 支持) -
fun main(args: Array<String>)也可以,但别写成fun main(argv: Array<String>)——参数名不重要,类型必须严格匹配 - 如果用了
class App { companion object { fun main() } },JVM 根本找不到入口,kotlinc不报错,但java运行时报Main method not found - 中文路径下编译可能静默失败,建议项目放英文路径,比如
D:/kotlin-demo/
kotlinc 版本、JDK 版本、main 签名、jar 打包方式,任意一环偏移都会导致“看着配好了却跑不起来”。最省事的验证方式:先在终端里手动跑通那条 kotlinc ... && java ... 命令,再粘进 Sublime 的 build 文件。










