当前位置:

首页 > 编程开发 > VSCode运行Kotlin程序教程 - 零基础配置运行环境

VSCode运行Kotlin程序教程 - 零基础配置运行环境

首先得弄明白一个根本事实:kotlinc 编译器是必须装的,VSCode 里的 Kotlin 插件仅仅是个桥接工具。没有编译器,连 println("Hello") 都跑不起来——别被“装个插件就能写”的说法误导。 很多新手装上插件后发现根本没法运行,问题就出在编译器上。下面把三种常见场景的配置要点

首先得弄明白一个根本事实:kotlinc 编译器是必须装的,VSCode 里的 Kotlin 插件仅仅是个桥接工具。没有编译器,连 println("Hello") 都跑不起来——别被“装个插件就能写”的说法误导。
VSCode运行Kotlin程序教程 - 零基础配置运行环境

很多新手装上插件后发现根本没法运行,问题就出在编译器上。下面把三种常见场景的配置要点拆开说清楚。

Code Runner 跑单个 .kt 文件:适合语法验证,但限制极多

这确实是看到输出最快的方式——前提是文件结构足够简单。它只适用于无包声明、无外部依赖、且 fun main() 是顶层函数的单个源文件。换句话说,如果你想快速验证一个语法特性,用它没问题;但凡项目稍微复杂一点,这条路就走不通了。

  • 系统 PATH 里必须能找到 kotlinc。macOS 上推荐 brew install kotlin,Windows 上 choco install kotlin 最省事。手动安装的话,记得把 bin/ 目录加到 PATH 里。
  • VSCode 设置里找到 kotlin.compilerPath,填绝对路径,比如 /opt/homebrew/bin/kotlinc。不能用 ~ 或环境变量——插件不吃这一套。
  • settings.json 中配置 Code Runner 的执行命令,关键参数是 -include-runtime,漏掉它就会遇到 NoClassDefFoundError: kotlin/jvm/internal/Intrinsics。正确配置如下:
    "code-runner.executorMap": {
      "kotlin": "cd $dir && kotlinc -include-runtime -d out.jar $fileName && ja va -jar out.jar"
    }
  • fun main() 必须写在顶层,不能放在 class 里。编译后生成的类名是 FileNameKt(文件名加 Kt),不是 FileName,记牢这一点。
  • 如果文件里写了 package com.example 或者使用任何外部库(比如 kotlinx.coroutines),这种方式直接报废——因为 Code Runner 根本不读取 build.gradle.kts

Gradle 项目必须配 kotlin("jvm")jvmToolchain(17)

VSCode 本身不编译 Kotlin,所有构建、依赖解析和 JVM 启动都由 Gradle 驱动。没有 build.gradle.kts,插件连源码目录都识别不了。

  • 新建项目别手写配置了——终端里执行 gradle init --type kotlin-application,全自动生成。
  • build.gradle.kts 至少需要这两段:
    plugins {
        kotlin("jvm") version "1.9.24"
    }
    kotlin {
        jvmToolchain(17)
    }
  • jvmToolchain(17) 不能省略。不写的话,Gradle 会用自带 JDK,很容易触发 UnsupportedClassVersionError——到时候排查起来很头大。
  • 别忘了声明主类:application { mainClass.set("com.example.AppKt") }。注意类名必须是 AppKt(文件名加 Kt),写成 App 会报 Could not find or load main class
  • 源码必须放到 src/main/kotlin/ 目录下。如果丢在项目根目录或别的地方,插件完全无视。

launch.json 调试总失败?别照搬 Ja va 配置

Kotlin 调试的本质是 attach 到已经启动的 JVM 进程,而不是像解释脚本那样直接执行 .kt 文件。所以直接照搬 Ja va 的 launch.json(设置 type: "ja va"mainClass)经常断点不命中,让人抓狂。

  • 最稳的方式:让 Gradle 启动带 JDWP 参数的 JVM。运行命令:./gradlew run --no-daemon -Dorg.gradle.debug=true。这样 VSCode 的调试器可以 attach 上去。
  • 或者在 launch.json 中用 type: "shell" 启动任务:
    {
      "type": "shell",
      "request": "launch",
      "name": "Run with Gradle",
      "command": "./gradlew run --no-daemon"
    }
  • 如果非要硬用 type: "ja va",那么 mainClass 必须严格匹配编译后的类名(比如 com.example.AppKt),并且项目必须先成功构建,产生 build/libs/*.jar
  • 调试前务必检查 VSCode 的 ja va.homeja va.configuration.runtimes 是否都指向 JDK 17+。两者不一致会导致 UnsupportedClassVersionError,或者断点变成灰色不可用。

为什么装了插件还是提示 “No SDK configured”

Kotlin 插件(比如 fwcd.kotlin)只提供语言服务——语法高亮、代码补全、跳转定义等——但它不自带 JDK 或编译器。它依赖 Ja va 扩展来发现运行时环境。所以提示 “No SDK configured” 并不是插件坏了,而是底层的 Ja va 扩展没有被正确配置。

  • 必须在 VSCode 设置里显式填写 ja va.home,例如 /Library/Ja va/Ja vaVirtualMachines/jdk-17.jdk/Contents/Home。只靠系统环境变量 JA VA_HOME 是不够的,插件不一定认。
  • 还需要在 settings.json 中补充 ja va.configuration.runtimes,否则新建 .kt 文件连语法高亮都没有:
    "ja va.configuration.runtimes": [
      {
        "name": "Ja vaSE-17",
        "path": "/Library/Ja va/Ja vaVirtualMachines/jdk-17.jdk/Contents/Home"
      }
    ]
  • kotlin.compilerPath 要单独设置为 kotlinc 可执行文件的绝对路径,否则插件会报 kotlinc not found
  • 改完设置后必须重启 VSCode——插件的加载发生在启动时,改了不重启等于白改。

真正卡住人的从来不是“怎么点运行”。ja va.homejvmToolchainmainClasskotlin.compilerPath 这四条路径各自独立生效,改一处并不等于全部通了。把每一条都检查到位,环境也就顺了。

本文内容来源于互联网,如有侵权请联系删除。
作者最新文章
编程开发
相关文章 更多
C++动态数组初始化怎么写?常用语句与代码示例
C++动态数组初始化怎么写?常用语句与代码示例

深入解析C++中动态数组的初始化机制,涵盖new操作符的不同用法、基本类型与类对象的初始化差异,以及为何在现代C++开发中应优先使用std::vector。

零基础了解 免费cdn加速:快速入门说明
零基础了解 免费cdn加速:快速入门说明

CDN通过全球节点网络缓存静态资源,将用户请求导向最近节点以提升访问速度与稳定性。免费CDN服务适合个人开发者及小型网站,能有效加速并减轻源站压力。配置时需注册账号、添加域名并设置缓存规则,注意缓存策略与流量限制。启用后可通过测速工具与CDN控制台数据验证效果并优化性能。

零基础了解 activity工作流:快速入门说明
零基础了解 activity工作流:快速入门说明

Activity工作流是基于Java的开源业务流程管理框架,通过可视化流程图分离业务逻辑与代码,提升透明度与可维护性。其核心包括流程定义、实例、任务及网关等概念,支持流程部署、执行与监控,常用于审批、订单处理等企业场景。

零基础了解 resource hacker:快速入门说明
零基础了解 resource hacker:快速入门说明

ResourceHacker是一款免费Windows工具,用于查看、修改和提取可执行文件中的图标、对话框等资源。其界面以树状结构展示资源,支持用户浏览、提取及替换资源文件。操作时需注意资源格式兼容性,并遵守法律法规,仅用于学习研究或个人定制,避免修改关键系统文件。

零基础了解 spidermonkey:快速入门说明
零基础了解 spidermonkey:快速入门说明

SpiderMonkey是Mozilla开发的JavaScript引擎,用于Firefox浏览器,能解析执行代码。它由C/C++编写且开源,可嵌入其他程序提供脚本支持。了解它有助于洞察JavaScript运行机制,并为参与Firefox或Rust开发、扩展C++应用功能提供基础。入门需克隆源码并配置编译环境,成功后通过交互式解释器运行代码。其核心嵌入能力允许

零基础了解 fckeditor:快速入门说明
零基础了解 fckeditor:快速入门说明

FCKeditor是一款开源在线文本编辑器,提供所见即所得编辑功能,便于网页图文排版与样式调整。它界面友好、配置灵活,能降低内容维护门槛。集成时需引入文件并初始化,同时应注意服务器端安全过滤。该项目现已升级为CKEditor,建议新项目考虑使用新版或同类替代工具。

零基础了解 sailfish系统:快速入门说明
零基础了解 sailfish系统:快速入门说明

Sailfish系统是源自诺基亚MeeGo的移动操作系统,由芬兰Jolla公司开发。它以手势操作为核心,界面流畅且注重隐私保护,兼容Linux应用并通过兼容层支持多数Android应用。用户可通过购买Jolla手机、刷机适配或虚拟机方式体验。该系统适合追求隐私、个性化及科技探索的用户,是小众市场的特色选择。

零基础了解 ubuntu 11.10 下载:快速入门说明
零基础了解 ubuntu 11.10 下载:快速入门说明

Ubuntu11.10是2011年发布的Linux版本,首次默认采用Unity桌面。如今它已过支持周期,存在安全风险,不推荐日常使用。若需体验,可从可靠镜像站下载ISO文件,并通过虚拟机等隔离环境安装。对于实际用途,应选择当前受支持的LTS版本。

零基础了解 meego系统下载:快速入门说明
零基础了解 meego系统下载:快速入门说明

MeeGo是诺基亚与英特尔2010年推出的开源操作系统,旨在融合Maemo与Moblin,横跨手机、平板等多设备。其界面简洁,以手势操作为特色,采用活动流与卡片式多任务。虽已停止维护,但可通过历史版本或模拟器体验。其技术遗产由SailfishOS延续,设计理念对后续系统产生影响,至今仍具研究价值。

零基础了解 puppy linux:快速入门说明
零基础了解 puppy linux:快速入门说明

PuppyLinux是一款轻量快速的Linux发行版,适合老旧或低配置硬件。它可完全运行于内存中,响应迅捷,ISO文件仅数百兆。支持Live模式,无需安装,设置和文件可保存以便携带和持久使用。通过启动U盘即可体验,是旧电脑复活、便携办公及学习Linux的理想选择。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件
macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

Mac软件 更多
灵活计算器
灵活计算器
macOS/iOS/Android

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

赤友清理大师
赤友清理大师
macOS

赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

极度公式
极度公式
Windows/macOS/Linux

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

WINDOWS 更多
Windows 10
Windows 10
Windows

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

极度公式
极度公式
Windows/macOS/Linux

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

密码键盘
密码键盘
Windows/macOS/iOS/Android

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。