我想使用 IntelliJ IDE 为 JVM 启动一个新的 Kotlin 项目,但我无法获得让它工作的配置。我试图遵循本教程,但之后不起作用(“运行'_DefaultPackage'”选项甚至从未出现),我开始尝试凭直觉知道应该做什么,但没有成功。 到目前为止发生了什么(反复):
fun main(args: Array<String>){
println("Hello world!")
}
public class Main {
fun main(args: Array<String>) {
println("Hello world!")
}
}
我错过了什么?
您无法组装项目,因为 main 方法不是静态的。所以你应该在伴生对象中定义它。
class HelloKotlin {
companion object {
@JvmStatic fun main(args: Array<String>) {
println("Kotlin main is running here!")
}
}
}
如何识别顶级
main()
函数的可运行类,或如何在类中使用 main()
方法的完整答案都记录在另一个 Stack Overflow 答案中:如何运行 Kotlin 类
这涵盖了在命令行、Intellij(如您的问题所问)、Gradle 等中运行。
指定“主类:”-> com.mypackage.MainKt
并在包“com.mypackage”中创建 Kotlin 文件“Main”
package com.mypackage
fun main(args: Array<String>) {
println("Hello Kotlin!")
}
打开包含主要功能的文件,然后转到菜单->“编辑配置”,然后在对话框中选择“+”,“应用程序”作为类型,将名称设置为您想要的名称,然后通过单击顶部输入框旁边的按钮(标有“主类”的那个)。
选择“使用模块的类路径”并从下拉框中选择您的模块。单击“应用”并关闭对话框。现在您应该能够使用shift+F10运行,使用shift+F9调试并使用shift+alt+F10编辑运行配置。您还可以通过主屏幕右上角的两个按钮来运行或调试。
另一种解决方案:
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)
}
}
问候!
我将 main.kt 文件移到项目的 src 文件夹中,问题解决了 即 IntelliJ 可以找到 MainKt 类
工作正常...请检查。复制并粘贴此代码并运行。
class MyFirstKotlinClass {
companion object {
@JvmStatic
fun main(args: Array<String>) {
println("=========>>>> run successful")
}
}
}
我必须更新我的 Kotlin 插件(最近才推出),然后右键单击运行选项开始出现。我无法将问题归结为其他任何问题,所以我认为就是这样。
如果您遇到此问题,请右键单击主要函数所在的源代码文件,然后单击运行、创建或调试。
请注意,主函数必须具有名称“main”(无大写)和“Array”参数。当我正在制作新项目并试图让它发挥作用时,这个问题让我遇到了几次。
对于那些使用 intelliJ-2021 Community 的人,我找到了解决方案here,它基本上说将您的主要功能放在您创建的类之外。立即,运行按钮将出现,配置将自行更新
您可以通过创建目录和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 更改为您的项目名称。
只需右键单击要运行的类并选择 Run ClassNameKt 选项,其余的将由 IntelliJ IDE 完成。