Kotlin 文件运行方式总结
最初只有 hello.kt文件

方式一:编译为 .class 后用 kotlin 命令运行
kotlinc hello.kt # 编译生成 HelloKt.class
kotlin HelloKt # 运行
原理:
- 编译产生
HelloKt.class(JVM 字节码) kotlin命令是一个包装器,会自动携带 Kotlin 标准库(stdlib)在 classpath 中执行- 依赖 Kotlin 运行时库,需要系统安装有 Kotlin runtime
方式二:Kotlin 脚本模式(.kts 文件)
kotlinc -script hello.kts
原理:
.kts文件是 Kotlin 脚本文件,逐行解释执行(无需显式 main 函数入口)- 适合快速编写工具脚本、自动化任务
- 每次运行都会实时编译 + 执行
方式三:打包为自包含的 JAR 运行/ 右键运行run code
kotlinc hello.kt -include-runtime -d hello.jar # 编译并打包
java -jar hello.jar # 运行
#下载code runner插件后在executorMap中设置该指令 可直接右键运行run code
kotlinc hello.kt -include-runtime -d hello.jar && java -jar hello.jar && rm hello.jar
原理:
-include-runtime将 Kotlin 标准库(~2-3MB)打包进 JAR,成为 self-contained 可执行文件- 无需系统安装 Kotlin runtime,双击或
java -jar即可运行 - 适合分发给最终用户
HelloKt.class vs hello.jar 的核心区别
| 对比项 | HelloKt.class | hello.jar(含运行时) |
|---|---|---|
| 是否自包含 | 否,依赖外部 Kotlin runtime | 是,打包了 Kotlin stdlib |
| 分发体积 | 小(仅你的代码) | 大(含运行时库 ~2-3MB) |
| 运行方式 | kotlin HelloKt | java -jar hello.jar |
| 部署目标 | 开发、调试、已有 Kotlin 环境 | 交付给无 Kotlin 环境的用户 |
一句话总结
| 方式 | 适用场景 |
|---|---|
kotlin HelloKt(编译后运行) | 轻量,适合开发调试 |
kotlinc -script *.kts | 适合临时脚本、 REPL 替代 |
java -jar hello.jar | 适合交付分发,无需目标机器装 Kotlin |
补充:其他运行方式
Kotlin 脚本模式(.kts 专用)
kotlinc -script hello.kts
注意: kotlin 无法直接运行 .kt 文件。kotlin命令只能运行已编译的.class文件。只有.kts脚本文件才可以通过-script` 模式直接执行。
Gradle / Maven 构建
在正式项目中,通常使用 Gradle 或 Maven 管理依赖和构建,而非直接用 kotlinc 手工编译。

4053

被折叠的 条评论
为什么被折叠?



