我正在尝试使用创建一个简单的 HelloWorld 应用程序kotlin
, gradle
,和梯度application
插入。当我使用以下设置运行它时,出现以下错误:
Error: Main method is not static in class com.petarkolaric.helloworld.Main, please define the main method as:
public static void main(String[] args)
My build.gradle
:
group 'helloworld'
version '1.0-SNAPSHOT'
buildscript {
ext.kotlin_version = '1.2.0'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
apply plugin: 'kotlin'
apply plugin: 'application'
mainClassName = "com.petarkolaric.helloworld.Main"
repositories {
mavenCentral()
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
}
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
My src/main/kotlin/com/petarkolaric/helloworld/Main.kt
:
package com.petarkolaric.helloworld
class Main {
fun main(args : Array<String>) {
println("Hello, World!")
}
}
根据这篇博文 http://zweifisch.github.io/kotlin-with-gradle.html#sec-3-2我应该能够以这种方式使用应用程序插件。
我需要更改什么才能允许application
当我运行时运行我的主要功能的插件gradle run
?
正如错误所示,您的 main 方法不是静态的。您有以下选择:
1)将主线放入companion object
并做到JvmStatic
class Main {
companion object {
@JvmStatic
fun main(args : Array<String>) {
println("Hello, World!")
}
}
}
2)改变你的class
to object
- 比你或多或少有一个单身人士class
并做到JvmStatic
object Main {
@JvmStatic
fun main(args : Array<String>) {
println("Hello, World!")
}
}
3)将main放在类之外
fun main(args : Array<String>) {
println("Hello, World!")
}
class Main {
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)