You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 16.04执行kotlinc编译报错:no class roots are found in JDK路径

解决Ubuntu 16.04中Kotlin编译JDK类路径错误的方案

别急,我来帮你一步步搞定这个问题~

这个报错的核心原因是Kotlin编译器找不到JDK里的核心类文件,大概率是因为Java 9在Ubuntu 16.04上的适配性不太好——毕竟Ubuntu 16.04是比较老的LTS版本,对Java 9的支持并不完善,而且早期的Kotlin版本和Java 9的兼容性也可能有问题。下面是具体的解决步骤:

第一步:检查系统已安装的JDK版本

先看看你的系统里装了哪些Java版本,运行这条命令:

update-alternatives --list java

如果输出里有java-8-openjdk-amd64相关的路径,那我们直接切换到Java 8就好;如果没有,就先安装Java 8。

第二步:切换到Java 8(已安装的情况下)

运行下面的命令来设置默认的Java运行环境:

sudo update-alternatives --config java

命令执行后会列出所有可选的Java版本,输入对应Java 8的序号,回车确认即可。

同样,还要设置默认的Java编译器版本:

sudo update-alternatives --config javac

同样选择Java 8对应的序号。

第三步:安装Java 8(如果未安装)

如果系统里没有Java 8,先执行以下命令安装OpenJDK 8:

sudo apt-get update
sudo apt-get install openjdk-8-jdk

安装完成后,再回到第二步切换默认版本。

第四步:验证JDK配置是否生效

运行以下两条命令,确认输出的版本都是Java 1.8.x:

java -version
javac -version

第五步:重新编译Kotlin文件

现在再执行你的编译命令:

kotlinc Hello.kt -include-runtime -d Hello.jar

这时候应该就能正常生成Hello.jar文件了。

如果还是有问题,可以检查一下Kotlin的版本(运行kotlinc -version),确保是较新的版本——如果是通过apt安装的Kotlin,Ubuntu 16.04的源里版本可能偏老,你可以考虑通过SDKMAN来安装最新版的Kotlin,但一般来说切换到Java 8就足以解决这个问题了。

内容的提问来源于stack exchange,提问作者Fil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:34:14