【问题标题】:HelloWorld in Kotlin gives error "Could not find or load main class"Kotlin 中的 HelloWorld 给出错误“找不到或加载主类”
【发布时间】:2021-11-29 14:51:32
【问题描述】:

我花了最后 1.5 小时试图让 this simple tutorial 在 IntelliJ IDEA 中工作,正如您在 this video 中看到的那样。

尝试运行代码时,出现错误:

/[...] -Dfile.encoding=UTF-8 src.HelloKt
Error: Could not find or load main class src.HelloKt
Caused by: java.lang.ClassNotFoundException: src.HelloKt

我试过setting up SDKinvalidating cacheremoving .idea and .gradlerebuilding projectdeleting the profile and adding it again。我以不同的顺序尝试了这些操作。

这是该项目的屏幕截图:

它还抱怨没有配置Kotlin,但我已经配置了它。

这是运行配置:

以下是项目设置:

【问题讨论】:

标签: kotlin intellij-idea


【解决方案1】:

您的Hello.kt 文件需要位于src/main 文件夹中的某个位置,可能在src/main/kotlin 中。这与教程不同,因为您的项目使用的是 Gradle,而教程中的项目不是。我认为这是因为较新版本的 IntelliJ 在新项目中默认使用 Gradle,而编写教程时并非如此。

使用 src/main/kotlinsrc/test/kotlin 作为源代码目录是 Gradle(和 Maven)中的约定。将 Gradle 项目导入 IntelliJ 时,main 成为模块,kotlin 成为该模块中的源文件夹。 test 也是如此。在您的屏幕截图中,maintest 上的粗体文本和蓝色图标确认您的项目就是这样设置的。这些文件夹之外的文件不会被视为源文件,这就解释了为什么您的 Hello.kt 文件没有被正确编译或识别。

自编写本教程以来,创建新项目时 IntelliJ 的默认行为可能已更改。 In the tutorial,他们选择“Kotlin”作为项目类型,这将创建一个不使用 Gradle 的项目。因此,该项目不使用src/main/kotlin 目录结构。

我可以从您的视频中看到您选择了相同的选项,但在下一个屏幕上,IntelliJ 仍然自动选择 Gradle 作为新项目的构建系统。为了匹配教程中使用的项目结构,我认为您需要选择“IntelliJ”作为构建系统。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    • 2014-11-18
    • 1970-01-01
    相关资源
    最近更新 更多