Kotlin - IntelliJ 项目设置

问题描述 投票:0回答:11

我想使用 IntelliJ IDE 为 JVM 启动一个新的 Kotlin 项目,但我无法获得让它工作的配置。我试图遵循本教程,但之后不起作用(“运行'_DefaultPackage'”选项甚至从未出现),我开始尝试凭直觉知道应该做什么,但没有成功。 到目前为止发生了什么(反复):

  • 我创建了一个新项目,选择“Kotlin - JVM”作为项目类型。
  • 我在第二页上单击了 Kotlin 运行时的“创建...”按钮,并选择了“复制到:lib”。
  • 我单击“完成”,创建的项目有一个与我的项目同名的模块。没有默认的源文件或任何配置。
  • 我创建了一个名为“app.kt”的 Kotlin 文件(我也尝试过其他名称,例如“Main.kt”),并将以下源代码放入:
fun main(args: Array<String>){
    println("Hello world!")
}
  • 我右键单击代码编辑器和左侧窗格中的文件,找到教程中提到的“运行'_DefaultPackage'”选项,但在其中都找不到它。
  • 我创建了一个新的 Kotlin 配置,它要求我放入一个“主类”。看到这里,我将代码改为:
public class Main {
    fun main(args: Array<String>) {
        println("Hello world!")
    }
}
  • 我编辑配置并将主类设置为“Main”,然后运行配置。它失败并出现以下错误:“运行时出错:在‘Main’类中找不到函数‘main’。

我错过了什么?

intellij-idea kotlin
11个回答
66
投票

您无法组装项目,因为 main 方法不是静态的。所以你应该在伴生对象中定义它。

class HelloKotlin {

        companion object {
            @JvmStatic fun main(args: Array<String>) {
                println("Kotlin main is running here!")
            }
        }
    }

11
投票

如何识别顶级

main()
函数的可运行类,或如何在类中使用
main()
方法的完整答案都记录在另一个 Stack Overflow 答案中:如何运行 Kotlin 类

这涵盖了在命令行、Intellij(如您的问题所问)、Gradle 等中运行。


8
投票

指定“主类:”-> com.mypackage.MainKt

并在包“com.mypackage”中创建 Kotlin 文件“Main”

package com.mypackage

fun main(args: Array<String>) {
    println("Hello Kotlin!")
}

5
投票

打开包含主要功能的文件,然后转到菜单->“编辑配置”,然后在对话框中选择“+”,“应用程序”作为类型,将名称设置为您想要的名称,然后通过单击顶部输入框旁边的按钮(标有“主类”的那个)。

选择“使用模块的类路径”并从下拉框中选择您的模块。单击“应用”并关闭对话框。现在您应该能够使用shift+F10运行,使用shift+F9调试并使用shift+alt+F10编辑运行配置。您还可以通过主屏幕右上角的两个按钮来运行或调试。


3
投票

另一种解决方案:

fun main(){
    println("Hello world!")
}

记住它超出了类声明的范围,还应该出现以下图标:

点击:

问题解决。如果您想在 Main.kt 中尝试此代码:

import javax.swing.JFrame

fun main() {
    println("Hi, kotlin !!!")
    val window = Main()
}

class Main {
    constructor(){
        val frame = JFrame()
        frame.setSize(800, 600)
        frame.setLocationRelativeTo(null)
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
        frame.setVisible(true)
    }
}

问候!


2
投票

我将 main.kt 文件移到项目的 src 文件夹中,问题解决了 即 IntelliJ 可以找到 MainKt 类


1
投票

工作正常...请检查。复制并粘贴此代码并运行。

class MyFirstKotlinClass {
    companion object {
        @JvmStatic
        fun main(args: Array<String>) {
            println("=========>>>> run successful")
        }
    }
}

0
投票

我必须更新我的 Kotlin 插件(最近才推出),然后右键单击运行选项开始出现。我无法将问题归结为其他任何问题,所以我认为就是这样。

如果您遇到此问题,请右键单击主要函数所在的源代码文件,然后单击运行、创建或调试。

请注意,主函数必须具有名称“main”(无大写)和“Array”参数。当我正在制作新项目并试图让它发挥作用时,这个问题让我遇到了几次。


0
投票

对于那些使用 intelliJ-2021 Community 的人,我找到了解决方案here,它基本上说将您的主要功能放在您创建的类之外。立即,运行按钮将出现,配置将自行更新


0
投票

您可以通过创建目录和XML文件来手动添加运行配置文件。

.run/MainKt.run:

<component name="ProjectRunConfigurationManager">
  <configuration default="false" name="MainKt" type="JetRunConfigurationType" nameIsGenerated="true">
    <option name="MAIN_CLASS_NAME" value="MainKt" />
    <module name="untitled.main" />
    <shortenClasspath name="NONE" />
    <method v="2">
      <option name="Make" enabled="true" />
    </method>
  </configuration>
</component>

您可以将 untitled.main 更改为您的项目名称。


-1
投票

只需右键单击要运行的类并选择 Run ClassNameKt 选项,其余的将由 IntelliJ IDE 完成。

© www.soinside.com 2019 - 2024. All rights reserved.