Kotlin应用程序与Gradle应用程序插件
我正在尝试使用kotlin
, gradle
和gradle application
插件来创建一个简单的HelloWorld应用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)
我的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" }
我的src/main/kotlin/com/petarkolaric/helloworld/Main.kt
:
package com.petarkolaric.helloworld class Main { fun main(args : Array) { println("Hello, World!") } }
根据这个博客文章,我应该可以使用这种方式的应用程序插件。
当我运行gradle run
时,需要更改哪些application
插件才能运行我的主函数?
如错误所述,您的主要方法不是静态的。 您有以下选择:
1)把主要的东西放到companion object
并使其成为JvmStatic
class Main { companion object { @JvmStatic fun main(args : Array) { println("Hello, World!") } } }
2)改变你的class
object
– 比你多或少有一个单身class
,使其JvmStatic
object Main { @JvmStatic fun main(args : Array) { println("Hello, World!") } }
3)在课堂外放置主体
fun main(args : Array) { println("Hello, World!") } class Main { }
- 禁用在Gradle中使用'kotlin'包检查
- Android Studio 3.0 Kotlin的变化并没有体现在构建中
- Java完成非零退出值2 – Android Gradle
- 多项目构建中的Gradle – 路径
- Java和Kotlin组合生成错误(重复邮编条目)
- 注释处理器不工作 – 不创建文件
- android-kotlin错误:未解决的引用databinding&ActivityMainBinding
- Android Studio 3.0 beta2
- 'com.android.tools.build:gradle:3.0.0-alpha3'和'com.android.tools.build:gradle:3.0.0-alpha1'有什么区别?