错误:在JDK路径 /usr/lib/jvm/java-9-openjdk-amd64 中找不到任何类根

5
我按照这里的指南https://kotlinlang.org/docs/tutorials/command-line.html在Ubuntu 16.04上安装了Kotlin和JDK。之后创建了一个Hello.kt文件,但是当我运行以下命令时:kotlinc Hello.kt -include-runtime -d Hello.jar,出现了错误:error: no class roots are found in the JDK path: /usr/lib/jvm/java-9-openjdk-amd64。作为第一次使用者,基本上我不知道该怎么做。你有任何想法吗?
3个回答

5

Ubuntu 16.04的基础软件仓库中没有Kotlin,因此默认的Java安装不太可能支持Kotlin。

如果您使用SDKMAN!安装Kotlin,则可能需要使用SDKMAN!安装的Java。

sdk install java
sdk install kotlin

确保您没有使用Ubuntu自带的Java...

$ which java
~/.sdkman/candidates/java/current/bin/java ## you should see '.sdkman' in the path here

看到这个问题,觉得它是一个开放的问题: https://discuss.kotlinlang.org/t/error-no-class-roots-are-found-in-the-jdk-path-usr-lib-jvm-java-9-openjdk-amd64/7516/3很高兴问题如此简单。干杯! - Christopher Kuttruff

3

对我而言,这是因为brew upgrade移除了一个jdk版本并使用另一个版本。

与此同时,Gradle已经缓存了对jdk版本的引用。

我通过删除Gradle缓存(rm -r .gradle)然后重新编译来解决这个问题。


1
我认为问题出在你的Java版本上。删除现有的JDK并重新安装最新的版本,正确设置JDK路径,这将解决你的问题。

这是最新的...如果它不在路径中,该怎么办?我在哪里找到路径? - Fil
1
找到jdk安装目录,在Windows电脑上我的jdk路径是"C:\Program Files\Java\jdk-10"。 - Anup Sarkar
我正在Ubuntu 06.04版上进行此操作。 - Fil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接