Ubuntu系统VS Code运行Kotlin出现kotlinc:not found错误如何解决?
问题原因
- SDKMAN安装的Kotlin可执行文件默认存放在当前用户家目录下的
.sdkman/candidates/kotlin/current/bin/路径下,相关的PATH配置会被SDKMAN写入用户个人的shell配置文件(如.bashrc、.zshrc),这类配置仅会在交互式登录shell启动时加载。 - VS Code启动时调用的是非交互式shell,Code Runner插件执行命令时默认使用的
/bin/sh也不会加载用户自定义的shell配置,导致系统在默认PATH里找不到kotlinc命令,抛出127错误。
解决方案
以下三种方案任选其一即可:
方案1:修改Code Runner的Kotlin执行配置(最推荐,不影响全局配置)
- 先在本地可正常执行
kotlinc的终端中执行以下命令,获取kotlinc的绝对路径:
which kotlinc
输出示例:/home/your_username/.sdkman/candidates/kotlin/current/bin/kotlinc
2. 打开VS Code设置,搜索code-runner.executorMap,点击「在settings.json中编辑」
3. 找到配置项中kotlin对应的执行命令,将其中的kotlinc替换为上一步查到的绝对路径,修改后示例:
"code-runner.executorMap": { "kotlin": "cd $dir && /home/your_username/.sdkman/candidates/kotlin/current/bin/kotlinc $fileName -include-runtime -d $fileNameWithoutExt.jar && java -jar $fileNameWithoutExt.jar" }
- 保存配置后重新运行代码即可。
方案2:全局配置可执行文件软链接
在终端执行以下命令,将kotlinc软链接到系统全局PATH路径下:
sudo ln -s 上一步查到的kotlinc绝对路径 /usr/local/bin/kotlinc
执行完成后重启VS Code即可生效。
方案3:修改VS Code集成终端启动参数
打开VS Code设置,搜索terminal.integrated.shellArgs.linux,如果你默认使用bash,添加参数["-l"];如果使用zsh,添加参数["-l", "-i"],让集成终端启动时加载用户shell配置,重启VS Code后生效。
内容的提问来源于stack exchange,提问作者Hmerman6006
相关产品推荐
相关产品推荐

