运行Java -jar时,Dropwizard Kotlin“类中的Main方法不是静态的”

时间:2018-08-31 22:01:41

标签: kotlin dropwizard

我正在尝试启动我的Dropwizard Kotlin应用程序。运行时:

java -jar target/application-1.0.jar server environment.yml

我收到以下错误:

Error: Main method is not static in class, please define the main method as: 
   public static void main(String[] args)

3 个答案:

答案 0 :(得分:1)

请确保您的应用程序类中的main方法是使用@JvmStatic在伴随对象内部定义的:

companion object {
    @JvmStatic
    fun main(args: Array<String>) {
        Application().run(*args)
    }
}

答案 1 :(得分:1)

在build.gradle中:

plugins {
id 'org.jetbrains.kotlin.jvm' version '1.3.41'
id 'application'
}
mainClassName = 'Main'

在Main.kt中:

class Main {

    companion object {

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

答案 2 :(得分:0)

函数main可以是顶级函数(例如,在名为alert("There will be an error") var a = [1, 2] a.forEach(alert) 的文件中):

foo.bar.MainApp.kt

如果使用gradle和应用程序插件进行构建和打包,则使用以下命令进行配置:

fun main(args: Array<String>) {
   Application().run(*args)
}