讲师中心 微信公众号
AI工具推荐 视频效率加速

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

冬晨小哥_5135

冬晨小哥_5135

发布时间:2026-04-27 23:03:19

|

590人浏览过

|

来源于php中文网

原创

Sublime Text 不支持直接运行 Kotlin 脚本(.kts),需通过 Build System 调用官方 kotlin 命令(非 kotlinc),并确保路径无空格、JVM 指定 -J-Dfile.encoding=UTF-8、脚本使用顶层表达式而非 fun main(),且须区分 .kts 与 .kt 的独立构建配置。

sublime配置kotlin脚本运行环境_sublime编写kotlin程序设置

Sublime Text 本身不支持直接运行 Kotlin 脚本(.kts),必须靠外部 kotlinc-jvm 或 kotlin 命令配合 Build System 实现;但要注意:新版 Kotlin(≥1.9)已弃用 kotlinc 的脚本模式,kotlin 命令才是专为 .kts 设计的解释器——很多人卡在用错命令上。

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

很多人误以为 kotlinc 能跑 .kts 文件,其实它只编译 .kt。真正用于脚本的是独立的 kotlin 可执行文件(随 Kotlin CLI 一起安装,不是别名或软链):

  • 终端执行 kotlin -version,必须有输出(如 Kotlin version 1.9.24);若报 command not found,说明没装完整版 Kotlin CLI,或 PATH 没包含其 bin/ 目录
  • kotlinc -version 和 kotlin -version 应该都可用,但用途不同:kotlinc 编译 .kt → .jar,kotlin 直接执行 .kts
  • Homebrew 安装的 kotlin(brew install kotlin)常缺 kotlin 命令,只带 kotlinc;推荐从 GitHub Releases 下载官方 ZIP 包并手动配置 PATH

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 源码,它默认执行文件内顶层代码,不走 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 命令能跑通,中文字符串打印成 ??? 或抛 java.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 里混用 kotlinc 和 kotlin 命令逻辑,比如先 kotlinc -script 再 java,新版已不支持 -script 参数

最易被忽略的其实是 .kts 和 .kt 的根本差异:前者是脚本,后者是编译单元;Sublime 里一个 Build System 无法同时正确处理两者,必须分开建两个文件(KotlinScript.sublime-build 和 Kotlin.sublime-build),且 selector 分别设为 source.kotlin.script 和 source.kotlin——插件识别不准时,连语法高亮都会错位。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

相关专题

更多
Kotlin协程编程与Spring Boot集成实践
Kotlin协程编程与Spring Boot集成实践

本专题围绕 Kotlin 协程机制展开,深入讲解挂起函数、协程作用域、结构化并发与异常处理机制,并结合 Spring Boot 展示协程在后端开发中的实际应用。内容涵盖异步接口设计、数据库调用优化、线程资源管理以及性能调优策略,帮助开发者构建更加简洁高效的 Kotlin 后端服务架构。

351

2026.02.12

Java Kotlin协程与异步编程实战
Java Kotlin协程与异步编程实战

本专题围绕 Kotlin 协程与异步编程展开,讲解挂起函数、协程作用域、异步任务调度及并发控制方法。通过实际项目案例,帮助开发者提升后端服务性能,实现高效异步任务处理与稳定性保障。

159

2026.04.13

Kotlin Android开发教程大全
Kotlin Android开发教程大全

系统讲解 Google 官方推荐的 Android 开发首选语言 Kotlin 的核心知识与工程实践,涵盖 Kotlin 简洁语法(空安全/数据类/扩展函数/解构声明/作用域函数)与 Java 互操作、集合操作与函数式编程、协程(Coroutines)异步编程(suspend/launch/async/Flow)、Jetpack Compose 声明式 UI 开发(状态管理/组合函数/导航/动画)、MVVM / MVI 架构设计与 Vi

248

2026.06.03

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

20

2026.10.10

Kratos框架HTTP与gRPC服务开发教程
Kratos框架HTTP与gRPC服务开发教程

本专题围绕Kratos框架双协议服务开发,涵盖HTTP路由与处理器编写、参数获取、gRPC服务实现与客户端调用、metadata上下文传递、encoding编解码注册、统一响应封装、超时控制与流式响应实现方法。

20

2026.10.10

Kratos框架Protobuf接口定义与代码生成合集
Kratos框架Protobuf接口定义与代码生成合集

本专题讲解Kratos框架接口定义体系,涵盖proto编写规范、proto add/client/server生成命令、http注解路由、validate校验、OpenAPI文档生成、跨服务proto复用与兼容性设计。

0

2026.10.10

C++虚函数怎么定义和调用
C++虚函数怎么定义和调用

C++虚函数是实现运行时多态的重要机制。本专题从virtual关键字的基本用法入手,介绍基类与派生类之间的函数重写、基类指针调用派生类方法,以及动态绑定的执行过程,帮助初学者掌握虚函数的核心语法。

20

2026.10.10

C++类与对象的封装方法教程
C++类与对象的封装方法教程

C++封装是面向对象编程的核心特性之一,通过类将数据与操作数据的函数组织在一起,并利用访问权限控制外部访问。本专题介绍类的定义、成员变量、成员函数以及public、private和protected的使用方法,帮助初学者掌握封装的基本原理。

0

2026.10.10

C++构造函数定义与调用方法
C++构造函数定义与调用方法

C++构造函数用于初始化类对象,是面向对象编程的重要基础。本专题从构造函数的定义、声明和调用入手,介绍默认构造函数、带参数构造函数、拷贝构造函数及成员初始化列表,帮助初学者掌握对象创建与初始化的基本方法。

20

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn