vscode运行kotlin需按场景配置:单文件用code runner调kotlinc并加-include-runtime;gradle项目须声明kotlin("jvm")和jvmtoolchain(17),mainclass设为appkt;调试需通过./gradlew run启动带jdwp的jvm或配launch.json。

NoClassDefFoundError、UnsupportedClassVersionError 或根本没反应。
Code Runner 怎么跑通单个 .kt 文件
这是最快看到 println 输出的方式,但只适用于无依赖、无包声明的顶层 fun main() 脚本。
- 必须确保系统 PATH 里有
kotlinc(比如brew install kotlin后路径是/opt/homebrew/bin/kotlinc) - VSCode 设置中搜索
kotlin.compilerPath,填入kotlinc的绝对路径——不能用~或$JAVA_HOME - 在
settings.json中覆盖默认命令,漏掉-include-runtime就会报NoClassDefFoundError: kotlin/jvm/internal/Intrinsics:"code-runner.executorMap": { "kotlin": "cd $dir && kotlinc -include-runtime -d out.jar $fileName && java -jar out.jar" } -
fun main()必须是顶层函数,不能写在 class 里;生成的类名是FileNameKt,不是FileName - 含
package com.example或任何外部依赖(如kotlinx.coroutines)的文件,此方式直接失败——它不读build.gradle.kts
Gradle 项目为什么 ./gradlew run 才可靠
VSCode 本身不编译 Kotlin,所有构建、依赖解析、JVM 启动都由 Gradle 驱动。插件只是识别任务和跳转,不是编译器。
- 项目根目录必须有
build.gradle.kts,且至少包含:plugins { kotlin("jvm") version "1.9.24" } kotlin { jvmToolchain(17) } application { mainClass.set("com.example.AppKt") } -
jvmToolchain(17)不能省:不写就默认用 Gradle 自带 JDK,极易触发UnsupportedClassVersionError -
mainClass.set(...)必须写成AppKt(Kotlin 文件名 +Kt),不是App,否则报Could not find or load main class - 源码必须放在
src/main/kotlin下;放错路径(比如丢在根目录)会导致插件完全无视 - 运行命令统一走终端执行
./gradlew run,或侧边栏「GRADLE」→「Tasks」→「application」→「run」
launch.json 调试总失败的根源在哪
Kotlin 调试不是解释执行 .kt 文件,而是 attach 到一个已启动的 JVM 进程。照搬 Java 配置大概率断点不命中。
- 别用
type: "shell"直接调kotlinc编译——生成的 class 文件无法被 debugger 正确映射源码 - 推荐方式:用 Gradle 启动带 JDWP 参数的 JVM,在
launch.json中设"type": "java","mainClass": "com.example.AppKt",并确保java.home和java.configuration.runtimes指向同一 JDK 17+ 实例 - 更稳妥的做法是 shell 启动:
"type": "shell", "request": "launch", "command": "./gradlew run --no-daemon", "console": "integratedTerminal"
- 如果用了
Kotlin/JS或Kotlin/Native,VSCode 几乎无实用调试支持,建议切回 IntelliJ IDEA
为什么装了插件还提示 No SDK configured
因为 Kotlin 插件(如 fwcd.kotlin)不自带 JDK,也不自动复用系统环境变量。它依赖 Java 扩展包显式识别运行时。
- 必须在 VSCode 设置中显式填
java.home,指向 JDK 17+ 根目录(例如/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home) - 还需手动配置
java.configuration.runtimes,内容与java.home一致,否则新建.kt文件连语法高亮都没有 - 路径必须用绝对路径,不能用
~或$JAVA_HOME;改完设置必须重启 VSCode——插件加载发生在启动时 - 右下角语言模式要手动选成
Kotlin,否则即使装了插件也不生效 - 别装名字含 “IntelliJ” 或 “JetBrains” 的插件——它们在 VSCode 中无效,还会冲突
java.home、java.configuration.runtimes、kotlin.compilerPath 各自指向不同 JDK 或缺失,改一处不等于全通。调试时 mainClass 名字拼错、jvmToolchain 漏写、-include-runtime 忘加——这些细节漏一个,就停在黑屏或报错上。











